LAMP安装
1、安装之前先检查一下系统是否有默认安装的apache或者php
# rpm -qa | grep httpd
# rpm -qa | grep php
2、把上面指令列出来的包都删除
# rpm -e 包名 --nodeps
3、在安装前 ,更新一下系统(此处可省略)
yum update
4、安装必备的包
# yum -y install ntp make openssl openssl-devel pcre pcre-devel libpng libpng-devel libjpeg-6b libjpeg-devel-6b freetype freetype-devel gd gd-devel zlib zlib-devel gcc gcc-c++ libXpm libXpm-devel ncurses ncurses-devel libmcrypt libmcrypt-devel libxml2 libxml2-devel imake autoconf automake screen sysstat compat-libstdc++-33 curl curl-devel
5、安装apache(目录:/etc/httpd/)
# yum install httpd
6、查看防火墙状态
# service iptables status
在关闭防火墙
service iptable stop
将80、3306端口加入
# /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
# /sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
#/etc/rc.d/init.d/iptables save
重启防火墙
service iptables start
7、配置yum源(此处可省略)
追加CentOS 6.5的epel及remi源。
# rpm -Uvh http://ftp.iij.ad.jp/pub/linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
以下是CentOS 7.0的源。
# yum install epel-release
# rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
使用yum list命令查看可安装的包(Packege)。
# yum list --enablerepo=remi --enablerepo=remi-php56 | grep php
8、安装PHP5.6(配置目录:/etc/php.ini)
# yum install --enablerepo=remi --enablerepo=remi-php56 php php-opcache php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug php-pecl-xhprof
查看php版本
# php --version
9、修改httpd.conf支持PHP,添加:
找到:
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
在后面添加:
AddType application/x-httpd-php .php(使Apcche支持PHP)
AddType application/x-httpd-php-source .php5
找到:
添加:
找到: #ServerName www.example.com:80
修改为: ServerName 127.0.0.1:80或者ServerName localhost:80 记得要去掉前面的“#”
修改默认的Web站点目录
找到:DocumentRoot "/usr/local/apache2/htdocs"
修改为:DocumentRoot "/home/www/WebSite" --该目录为自己创建的目录
找到:
修改为:
10、安装MySql(配置文件目录:/etc/my.cnf;数据库目录:/var/lib/mysql/)
查看自带的mysql
#rpm -qa | grep mysql
卸载mysql-lib
# rpm -e mysql-libs.i686 --nodeps
下载rpm
# wget http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm
接着执行这句,解释一下,这个rpm还不是mysql的安装文件,只是两个yum源文件,执行后,在/etc/yum.repos.d/ 这个目录下多出mysql-community-source.repo和mysql-community.repo
# rpm -ivh mysql-community-release-el6-5.noarch.rpm
这个时候,可以用yum repolist mysql这个命令查看一下是否已经有mysql可安装文件
# yum repolist all | grep mysql
安装mysql 服务器命令(一路yes)
# yum install mysql-community-server
安装成功后
# service mysqld start
【启动会出现问题,MySQL Daemon failed to start.解决办法:
错误提示中所说: ibdata1 的值640个pages 配置文件中的值768个pages 不同。所以修改my.cnf 中innodb_data_file_path 中ibdata1 的值即可.
首先计算ibdata1的初始值:640/64 = 10M
最后的配置是:innodb_data_file_path = ibdata1:10M:autoextend;
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
innodb_data_file_path = ibdata1:10M:autoextend
[mysqld_safe]】
【 由于mysql刚刚安装完的时候,mysql的root用户的密码默认是空的,所以我们需要及时用mysql的root用户登录(第一次回车键,不用输入密码),并修改密码
# mysql -u root
# use mysql;
# update user set password=PASSWORD("这里输入root用户密码") where User='root';
授权(自动创建)一个mysql的非root的aaa用户,能访问localhost上的testdb数据库,密码是xxxx,最后刷新权限
# grant all privileges on testdb.* to aaa@localhost identified by 'xxxx';
# flush privileges;
创建一个utf8的表(如果你有需要的话)之后退出
# CREATE DATABASE `database` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
# exit;
mysql安全设置(系统会一路问你几个问题,看不懂复制之后翻译,基本上一路yes):
# mysql_secure_installation 】(此处可省略)
查看mysql是否自启动,并且设置开启自启动命令
# chkconfig --list | grep mysqld
# chkconfig mysqld on
11、安装phpMyAdmin(配置文件目录:/etc/phpMyAdmin/config.inc.php;库文件目录:/usr/share/phpMyAdmin/)
# yum install --enablerepo=remi --enablerepo=remi-php56 phpmyadmin
# yum -y install php-mcrypt(如果安装php时没有安装php-mcrypt包,可能会出现错误提示,这时只需将其安装)
配置phpMyAdmin
A、
# /etc/init.d/mysql stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
mysql> FLUSH PRIVILEGES;
mysql> quit
# /etc/init.d/mysql restart
# mysql -uroot -p
Enter password: <输入新设的密码newpassword>
B、修改/etc/phpMyAdmin/config.inc.php:打开config.inc.php文件,进行以下修改;
// $cfg['Servers'][$i]['controluser'] = 'pma';
// $cfg['Servers'][$i]['controlpass'] = 'pmapass';
// $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
// $cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
// $cfg['Servers'][$i]['relation'] = 'pma_relation';
// $cfg['Servers'][$i]['table_info'] = 'pma_table_info';
// $cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
// $cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
// $cfg['Servers'][$i]['column_info'] = 'pma_column_info';
// $cfg['Servers'][$i]['history'] = 'pma_history';
去掉每行前面的//
认证方法:$cfg['Servers'][$i]['auth_type'] 有三个待选项值,即 cookie、http、config、HTTP。config方式即输入phpmyadmin的访问地址即可直接进入,无需输入用户名和密码,是不安全的,不推荐使用。当该项设置为cookie、http、HTTP时,登录phpmyadmin需要数据用户名和密码进行验证,具体如下:PHP安装模式为Apache,可以使用http和cookie;PHP安装模式为CGI可以使用cookie。不过个人建议不论本地还是网络上,都设置成cookie,安全第一。
登录方式:四种登录方式。config:直接输入phpmyadmin远程登录地址即可,只要在配置文件中设置用户名和密码即可。用http:浏览器会弹出授权窗口,输入用户名和密码。signon:类似于页面跳转的登录方式,同时需要设定$cfg['Servers'][$i]['SignonURL'],当你输入phpmyadmin的远程登录地址后自动跳转到signonURL设定的网址。 cookie:要求用户必须输入正确的用户名与密码。
$cfg['Servers'][$i]['host'] = 'localhost';一般的话,如果mysql和phpmyadmin放在同一服务器上,主机名就直接用localhost。
$cfg['Servers'][$i]['controluser'] ='pma';把pma修改为你的帐号。
$cfg['Servers'][$i]['controlpass'] ='pmapass'; 把pmapass设置为你的mysql登录密码。
$cfg['blowfish_secret'] =''; 添加短语密码,可是任意字符串例如:$cfg['blowfish_secret'] = 'abcd'修改以后(尽量写长些,否则会提示密码太短)以后登入phpMyAdmin就方便多了,但一定不要使用空密码。
C、修改/etc/httpd/conf.d/phpMyAdmin.conf,本文件是phpMyAdmin的访问控制文件,保证远程访问。如下修改即可:(可将phpMyAdmin目录和apache目录路径设置一致)
Order Deny,Allow
#Deny from All
Allow from All
D、用命令/etc/init.d/httpd restart重启Apache,测试:访问http://ip地址/phpMyAdmin/
LNMP安装
1、查看环境
# cat /etc/redhat-release
2、关闭防火墙
# service iptables stop 或 # /etc/init.d/iptables stop
将80、3306端口加入
# /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
# /sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
# /etc/rc.d/init.d/iptables save
重启防火墙
# service iptables start
3、卸载已安装的apache、mysql、php
# yum remove httpd
# yum remove mysql
# yum remove php
4、配置第三方yum源
# wget http://www.atomicorp.com/installers/atomic
# sh ./atomic
# yum check-update
5、安装开发包和库文件
# yum -y install ntp make openssl openssl-devel pcre pcre-devel libpng libpng-devel libjpeg-6b libjpeg-devel-6b freetype freetype-devel gd gd-devel zlib zlib-devel gcc gcc-c++ libXpm libXpm-devel ncurses ncurses-devel libmcrypt libmcrypt-devel libxml2 libxml2-devel imake autoconf automake screen sysstat compat-libstdc++-33 curl curl-devel
6、安装nginx(配置文件目录: /etc/nginx/nginx.conf;虚拟主机配置:/etc/nginx/conf.d/default.conf;启动路径:/etc/init.d/nginx;)
# yum install nginx
# service nginx start
# chkconfig --levels 235 nginx on
//设2、3、5级别开机启动【6个运行级别
0 - 停机(千万不要把initdefault设置为0 )
1 - 单用户模式
2 - 多用户,但是没有NFS
3 - 完全多用户模式
4 - 没有用到
5 - X11
6 - 重新启动(千万不要把initdefault设置为6 )
对各个运行级的详细解释:
0 为停机,机器关闭。
1 为单用户模式,就像Win9x下的安全模式类似。
2 为多用户模式,但是没有NFS支持。
3 为完整的多用户模式,是标准的运行级。
4 一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置。
5 就是X11,进到X Window系统了。
6 为重启,运行init 6机器就会重启。
修改级别
vi /etc/inittab
把id:3:initdefault:中的3改为相应的级别】
7、安装MySql
# yum install mysql mysql-server mysql-devel
# service mysqld start
# chkconfig --levels 235 mysqld on
登陆MySQL删除空用户,修改root密码
# mysql -uroot
# update mysql.user set password = PASSWORD('*********') where user='root';
# flush privileges;
8、安装PHP
# yum install php lighttpd-fastcgi php-cli php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mssql
php-snmp php-soap
//安装php和所需组件使PHP支持MySQL、FastCGI模式
# yum install php-tidy php-common php-devel php-mysql php-fpm
# service php-fpm start
# chkconfig --levels 235 php-fpm on
9、配置nginx支持php
//将配置文件改为备份文件
# cp /etc/nginx/nginx.conf /etc/nginx/nginx.confbak
//修改nginx配置文件,添加fastcgi支持
//加入index.php
# vim /etc/nginx/conf.d/default.conf
location / {
root /usr/share/nginx/html;
index index.php index.html index.htm;
}
location ~ \.php$ {
root /usr/share/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;
include fastcgi_params;
}
//将以上代码注释去掉,并修改成nginx默认路径
10、配置PHP
//编辑文件php.ini,在文件末尾添加cgi.fix_pathinfo = 1
# vi /etc/php.ini
11、重启nginx php-fpm
# service nginx restart
# service php-fpm restart
12、测试
ip/index.php
13、安装phpMyAdmin(配置文件目录:/etc/phpMyAdmin/config.inc.php;库文件目录:/usr/share/phpMyAdmin/)
Nginx设置alias别名目录访问phpmyadmin
# vim /etc/nginx/conf.d/default.conf
添加一下内容:
location /phpMyAdmin{
alias /usr/share/phpMyAdmin;
index index.php;
}
location ~ /phpMyAdmin/.+\.php$ {
if ($fastcgi_script_name ~ /phpMyAdmin/(.+\.php.*)$) {
set $valid_fastcgi_script_name $1;
}
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/phpMyAdmin/$valid_fastcgi_script_name;
}
重启php-fpm、nginx
# service php-fpm restart
# service nginx restart
问题一:在浏览器地址输入:ip/phpMyAdmin/ 会出现:
phpMyAdmin – ErrorCannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly.的提示
我们可以从错误提示看到,php没有正确保存session。导致上面的错误提示个人认为原因在于没有给php正确设置session的临时目录导致。在php.ini文件搜索找
session.save_path
php.ini文件中显示 session.save_path = “N;/path”
需要将它修改为
session.save_path = "/var/lib/php/session"
修改/var/lib/php/session目录的所有权和属主
# chown -R nginx:nginx /var/lib/php/session
修改此目录的属主为nobody
解决登录问题还应该修改/var/lib/php/session目录权限
# chmod 777 /var/lib/php/session
然后重新启动php和nginx到服务即可正常登录phpMyAdmin,
phpmyadmin需要配置权限为755,不然会提示配置错误
好了。
问题二:登录phpMyAdmin后页面会看到“配置文件现在需要一个短语密码”
打开phpMyAdmin/libraries/config.default.php
# vim /usr/share/phpMyAdmin/libraries/config.default.php
找到$ cfg['blowfish_secret'] = ''这一栏,并将这一栏修改为$ cfg['blowfish_secret'] = '654321';(单引号中的数字是可以随意输入,尽量长些);
问题三:create_tables.sql导入
到phpMyadmin官网下载phpmyadmin,解压包,找到create_tables.sql,导入本地phpmyadmin;
外网如何访问虚拟机服务器
配置可参考链接:http://blog.csdn.net/mecho/article/details/24396065
1、原理及配置可参考链接:http://blog.csdn.net/hguisu/article/details/7325124
2、注意点:
(1)配置master和配置slave,添加配置项的位置都在前面
配置master:
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
#以下为主从数据库配置
server-id=1
log-bin=mysql-bin
配置slave:
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
#以下为主从数据库配置
log_bin = mysql-bin
server_id = 2
relay_log = mysql-relay-bin
log_slave_updates = 1
read_only = 1
(2)
master将改变记录到二进制日志(binary log)中:路径为 datadir=/var/lib/mysql
slave的中继日志(relay log)位置: datadir=/var/lib/mysql
(3)
如果master更改slave的用户名和密码,首先停掉slave,之后需要重启master,这时master会重新生成一个二进制文件,然后slave再重新连接master,并且连接的是master的当前二进制文件。