一、准备工作
1、检查selinux是否为关闭状态,不为disable需要改为disable。
SELINUX=disabled
不为disabled 的话,则修改为 SELINUX=disabled。
2、检查环境下有没有安装过低版本的
rpm -qa|grep MysqL
MysqL-libs-5.1.73-8.el6_8.x86_64
rpm -qa|grep Nginx
rpm -qa|grep PHP
从上可获知Linux下yum过一个 MysqL-libs-5.1.73-8.el6_8.x86_64,等下安装MysqL5.6版本的时候,先做卸载就可以。
3、可以查看有没有MysqL Nginx PHP等相关的命令 ,有可能是源码安装过的,若有也需要卸载掉。
whereis Nginx
4、防火墙上开启80端口的对外开放, 3306端口看你对外需求再开放了(安全考虑需要对外开放的话,也只能授权对应的信任IP访问才行)
刚刚新安装的系统默认的是关闭iptables的
vim /etc/sysconfig/iptables
加入以下内容
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1:140]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
保存后重启iptables
service iptables restart
二、安装Nginx
centos 6.9默认的是Nginx1.10版本,想安装Nginx更高的版本可以下载Nginx官网yum源进行安装,这里省略自己查看其它版本安装的参考吧。
1、删除系统自带的软件包
yum remove httpd PHP
2、安装Nginx
yum install -y Nginx
3、设置Nginx开机启动
chkconfig Nginx on
4、启动Nginx
service Nginx start
三、安装MysqL5.6
1、检查MysqL是否有相关包
whereis MysqL
MysqL: /usr/lib64/MysqL /usr/share/MysqL
rpm -qa|grep MysqL
MysqL-libs-5.1.73-8.el6_8.x86_64
卸载MysqL-libs-5.1.73-8.el6_8.x86_64
yum remove MysqL-libs
2、清空dbcache
yum clean dbcache
3、下载MysqL rpm安装包
wget http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm
4、 安装MysqL安装源
使用rpm -ivh MysqL-community-release-el6-5.noarch.rpm安装下载的rpm文件~
rpm -ivh MysqL-community-release-el6-5.noarch.rpm
5、安装MysqL-community-server
使用yum install MysqL-community-server安装MysqL server。
yum install MysqL-community-server
6、启动MysqL服务
service MysqLd start
使用update user set password=PASSWORD("YOUR_PASSWORD") where user='root';修改root账号密码~
MysqL> use MysqL;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MysqL> update user set password=PASSWORD("YOUR_PASSWORD") where user='root';
Query OK,4 rows affected (0.00 sec)
Rows matched: 4 Changed: 4 Warnings: 0
MysqL> flush privileges;
Query OK,0 rows affected (0.00 sec)
MysqL> quit
至此,MysqL安装完毕~
四、安装PHP5.6
检查当前安装的PHP包
yum list installed | grep PHP
如果有安装的PHP包,先删除他们,如:
yum remove PHP.x86_64 PHP-cli.x86_64 PHP-common.x86_64
配置安装包源:,根据具体Linux系统版本安装源。
Centos 5.X
rpm -Uvh http://mirror.webtatic.com/yum/el5/latest.rpm
CentOs 6.x
rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm
CentOs 7.X
rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
如果想删除上面安装的包,重新安装
rpm -qa | grep Nginx
rpm -e [上面搜索到的包即可]
执行安装
yum -y install PHP56w.x86_64
yum -y --enablerepo=webtatic install PHP56w-devel
yum -y install PHP56w-gd.x86_64 PHP56w-ldap.x86_64 PHP56w-mbstring.x86_64 PHP56w-mcrypt.x86_64 PHP56w-MysqL.x86_64 PHP56w-pdo.x86_64 PHP56w-opcache.x86_64
安装PHP FPM
yum -y install PHP56w-fpm
#设置PHP-fpm开机启动
chkconfig PHP-fpm on
#启动PHP-fpm
/etc/init.d/PHP-fpm start
五、配置
server{
listen 80;
servername ; //这里填写你的域名
index index.PHP index.html index.htm;
root /var/www/html;
location ~ .*\.(PHP|PHP5)?$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.PHP; include fastcgi.conf;
方法二:
//fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
//include fastcgi_params;
} location / { try_files $uri $uri/ /index.PHP?$query_string; }
}
说明: /var/www/html 为web根目录,【location /】 ... 为url的rewrite,隐藏 index.PHP
#修改用户为Nginx
user = Nginx
#修改组为Nginx
group = Nginx
开始测试
cd /var/www
vi index.PHP
添加以下代码
<?PHP
echo PHPinfo();
?>
:wq! 保存退出
#设置权限
chown Nginx.Nginx /var/www -R
#重启Nginx
service Nginx restart //(若fastcgi.conf没找到:,请参考上面配置的方法二)
#重启PHP-fpm
service PHP-fpm restart
在客户端浏览器输入服务器IP地址(如: 127.0.0.1),可以看到相关的配置信息!
如果是虚拟机,则使用ifconfig获取虚拟机ip,在浏览器输入:虚拟机IP/index.PHP,可以看到相关的配置信息!
说明配置成功!
3、更改MysqL编码为utf8
vim /etc/my.cnf 添加一下内容
character_set_server = utf8
4、设置开机启动项
chkconfig Nginx on
chkconfig MysqLd on
chkconfig PHP-fpm on
六、问题:
问题1 /etc/init.d/Nginx restart
Nginx: [emerg] socket() [::]:80 Failed (97: Address family not supported by protocol)
Nginx: configuration file /etc/Nginx/Nginx.conf test Failed
解决方法: 编辑 /etc/Nginx/conf.d/default.conf
注释掉 listen [::]:80 default_server;
问题2:网站注册页面报异常:field ‘id' doesn't have a default value
解决方法: 打开my.ini,查找 sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" 修改为 sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" 然后重启MysqL