- 安装的前置工作
- 更新yum源里nginx,mysql和php的版本
- 安装nginx,mysql和php
- 配置lnmp
安装lnmp前的准备工作
- ** 配置防火墙 **,开启80端口、3306端口,添加到默认的22端口规则的下面。
vi /etc/sysconfig/iptables
#允许80端口通过防火墙
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
#允许3306端口通过防火墙
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
#保存退出
:wq
#重启防火墙iptables使配置生效
/etc/init.d/iptables restart
- ** 关闭selinux **
vi /etc/selinux/config
#注释掉
#SELINUX=enforcing
#注释掉
#SELINUXTYPE=targeted
#增加
SELINUX=disabled
#保存关闭
:wq
#重启系统
shutdown -r now
- ** 配置yum源 **
- 可以直接用第三方源,例如repo,163等
- nginx和mysql可以用官方repo文件。PHP官网只有编译包,所以只能用第三方yum源。
- 可以通过yum list | grep nginx 查看nginx,mysql和php的版本
安装Nginx
#安装nginx
yum install nginx
#启动
service nginx start
#设置开机启动
chkconfig nginx on
#重启设置
/etc/init.d/nginx restart
安装MySql
1、安装
yum install mysql mysql-server
#拷贝配置文件
cp /usr/share/mysql/my-default.cnf /etc/my.cnf
#启动MySQL
/etc/init.d/mysqld start
#设为开机启动
chkconfig mysqld on
#重启系统
shutdown -r now
2、初始化MySql
#查看临时密码,mysql5.7之后安装时mysql会生成一个临时密码,mysql_secure_installation需要填写命令。
grep 'temporary password' /var/log/mysqld.log
#初始化命令,按步骤选择。
mysql_secure_installation
# 是否设定root密码,当然设置了,输入Y回车
Set root password? [Y/n] Y
# 输入root密码
New password:
# 再次输入root密码,MySQL5.6.6增加了密码强度验证插件validate_password,密码要求比较严格,需要特殊字符和大小字符,可以关闭这个插件
Re-enter new password:
# 是否删除匿名用户,删除,输入Y回车
Remove anonymous users? [Y/n] Y
# 是否删禁止root用户远程登录,当然禁止,输入Y回车
Disallow root login remotely? [Y/n] Y
# 是否删除测试数据库test,看个人喜好
Remove test database and access to it? [Y/n]
# 刷新权限,输入Y回车
Reload privilege tables now? [Y/n] Y
#初始化完毕
#停止
/etc/init.d/mysqld stop
#启动
/etc/init.d/mysqld start
#重启
service mysqld restart
安装PHP
1、安装yum源和扩展
centos yum源是没有php的安装包,修改使用webtatic,remi或者rpmforge的源
#扩展源
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
#php源
rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm
#清理缓存
yum clean all
#服务器的包信息缓存到本地
yum makecache
2、安装php和php扩展
#安装php5.6
yum install php56w
#可能用到的扩展
yum install php56w-bcmath php56w-dba php56w-devel php56w-embedded php56w-enchant php56w-fpm php56w-gd php56w-imap php56w-interbase php56w-intl php56w-ldap php56w-mbstring php56w-mcrypt php56w-mssql php56w-mysqlnd php56w-odbc php56w-opcache php56w-pdo php56w-pear.noarch php56w-pecl-apcu php56w-pecl-apcu-devel php56w-pecl-gearman php56w-pecl-geoip php56w-pecl-igbinary php56w-pecl-igbinary-devel php56w-pecl-imagick php56w-pecl-imagick-devel php56w-pecl-memcache php56w-pecl-memcached php56w-pecl-redis php56w-pecl-xdebug php56w-pgsql php56w-phpdbg php56w-process php56w-pspell php56w-recode php56w-snmp php56w-soap php56w-tidy php56w-xml php56w-xmlrpc
#重启MySql
/etc/init.d/mysqld restart
#重启nginx
/etc/init.d/nginx restart
#启动php-fpm
/etc/rc.d/init.d/php-fpm start
#设置开机启动
chkconfig php-fpm on
配置
配置nginx支持php
#备份原有配置文件
cp /etc/nginx/nginx.conf /etc/nginx/nginx.confbak
#编辑
vi /etc/nginx/nginx.conf
#修改nginx运行账号为:nginx组的nginx用户
user nginx nginx;
#保存退出
:wq!
#备份原有配置文件
cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.confbak
#编辑
vi /etc/nginx/conf.d/default.conf
#增加index.php
index index.php index.html index.htm;
#取消FastCGI server部分location的注释,并要注意fastcgi_param行的参数,改为$document_root$fastcgi_script_name,或者使用绝对路径
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
备注
nginx默认站点目录是:/usr/share/nginx/html/
权限设置:chown nginx.nginx/usr/share/nginx/html/ -R
MySQL数据库目录是:/var/lib/mysql
权限设置:chown mysql.mysql -R /var/lib/mysql
PHP主目录 /etc/php.d/
PHP配置文件 /etc/php.ini
PHP模块位置 /usr/lib/php/ 或者 /usr/lib64/php/