【笔记】lnmp(Linux+nginx+MySQL+PHP)环境配置
1、安装编绎安装需要的依赖
yum install gcc gcc-c++ autoconf automake ncurses-devel openssl-devel2、安装Mysql
1) rz 上传 sz PATH
yum install lrzsz -y2)安装cmake
cd /usr/local/src
wget http://www.cmake.org/files/v3.0/cmake-3.0.2.tar.gz
tar zxvf cmake-3.0.2.tar.gz
cd cmake-3.0.2
./configure
make
make install3)添加mysql组
groupadd mysql
##创建用户mysql并加入到mysql组,不允许mysql用户直接登录系统
useradd -g mysql mysql -s /bin/false4)安装Mysql
#创建MySQL数据库存放目录
mkdir -p /data/mysql
#设置MySQL数据库存放目录权限
chown -R mysql:mysql /data/mysql
#创建MySQL安装目录
mkdir -p /usr/local/mysql
cd /usr/local/src
#下载mysql
wget http://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.21.tar.gz
#解压
tar zxvf mysql-5.6.21.tar.gz
#进入目录
cd mysql-5.6.21
#配置
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc
#编译
make
make install4)配置
#删除系统默认的配置文件(如果默认没有就不用删除)
rm -rf /etc/my.cnf
#进入MySQL安装目录
cd /usr/local/mysql
#生成mysql系统数据库
./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
#添加到/etc目录的软连接
ln -s /usr/local/mysql/my.cnf /etc/my.cnf
#把Mysql加入系统启动
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
#增加执行权限
chmod 755 /etc/init.d/mysqld
#加入开机启动
chkconfig mysqld on
#编辑
vi /etc/rc.d/init.d/mysqld
#键入“i”进入编辑模式,修改以下两个路径
basedir=/usr/local/mysql #MySQL程序安装路径
datadir=/data/mysql #MySQl数据库存放目录
#修改好按Esc退出编辑模式,输入以下字符回车保存退出
:wq
#启动
service mysqld start3、安装nginx
1)仓库
#为了可以使用 CentOS 系统的包管理工具去安装更多的东西,我们需要单独安装一些额外的软件仓库。
#EPEL
sudo yum install epel-release -y
#IUS,IUS 仓库里面有我们需要的一些新的软件包,比如 PHP 7。注意我们安装的是为 CentOS 7 这个系统准备的 IUS 仓库,如果你的系统是 CentOS 6,你需要到 IUS 网站上去查找适合的仓库的下载地址
sudo yum install https://centos7.iuscommunity.org/ius-release.rpm -y2)安装nginx
#NGINX 这个软件包已经包装在 EPEL 仓库里了,之前我们已经安装了这个仓库,所以可以直接使用包管理工具去安装 NGINX。
sudo yum install nginx -y
#启动
sudo systemctl start nginx
#开启自启动
sudo systemctl enable nginx服务启动以后,你就可以在浏览器上使用服务器的 IP 地址,或者指向这个地址的域名访问服务器指定的目录了。你会看到一下界面。

3)配置 nginx 虚拟主机
安装完 nginx 以后,第一件想到的事应该就是去创建虚拟主机,虚拟主机允许我们在同一台服务器上运行多个网站,我们可以为不同的域名绑定不同的目录,访问这个域名的时候,会打开对应目录里面的东西。之前介绍过为 Apache 服务器创建虚拟主机,下面来看一下为 nginx 配置虚拟主机。先进入到 nginx 配置文件目录:
cd /etc/nginx/conf.d创建一个新的配置文件,比如我要为 tytrock.com 这个主机名创建一个虚拟主机,可以这样:
vim tytrock.conf编辑配置文件,把下面的配置代码放到这个配置文件里(root为站点根目录路径,按实际填写):
server {
listen 80;
server_name tytrock.com;
root /usr/site/tytrock;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}上面这个配置文件支持一些的 PHP 应用,比如 WordPress,Drupal,Laravel。第一个 location 区块可以让 PHP 应用支持地址的重写功能,第二个 Location 设置了让虚拟主机可以去处理 PHP 的请求。注意这里用了 include 命令,包含进来一个 fastcgi.conf 文件,你要确定这个文件存在。
你也可能会找到 fastcgi_params 这个文件,如果没有 fastcgi.conf 就把 fastcgi_params 这个文件包含进来,并且在处理 php 的那个 location 区块里再添加一条配置:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;erver_name 就是主机名,也就是跟这个虚拟主机绑定在一块儿的域名,我事先把 nginx.ninghao.net 指向了服务器,这个虚拟主机就是为它准备的,所以,server_name 后面的东西就是 nginx.ninghao.net 。紧接着 server_name 下面可以是一个 root,就是这个虚拟主机的根目录,也就是网站所在的目录。比如我们要把 nginx.ninghao.net 这个网站的文件放在 /home/www/nginx.ninghao.net 下面,那么这个 root 就是这个路径。
然后去掉 location / 里面的 root 这行代码。再在 index 后面加上一种索引文件名,也就是默认打开的文件,这里要加上一个 index.php ,这样访问 nginx.ninghao.net 就可以直接打开 root 目录下面的 index.php 了。稍后我们再去安装 php 。
保存一下,按 esc ,输入 :wp(保存并退出)。现在虚拟主机应该就可以使用了。主机的域名是 nginx.ninghao.net,访问它的时候,打开的是 /home/www/nginx.ninghao.net 这个目录里面的东西,你可以在这个目录下放点东西。
重启 nginx 或者重新加载 nginx 可以让配置文件生效。
systemctl reload nginx4、安装PHP
php5.6版本
#安装
sudo yum install php56u-fpm -y
#启动
sudo systemctl start php-fpm
#开机自动启动
sudo systemctl enable php-fpm
#安装 PHP 扩展:为了可以正常运行一般的 PHP 应用,你需要再安装一些其它的 PHP 扩展,通常你在安装 PHP 应用,比如 WordPress,Drupal,Laravel 的时候,都会提示你缺少的 PHP 扩展。下面是一些常用的 PHP 扩展:
sudo yum install php56u-gd php56u-mysqlnd php56u-pdo php56u-mcrypt php56u-mbstring php56u-json php56u-opcache php56u-xml -y
#重新加载 PHP-FPM
sudo systemctl reload php-fpm有些情况安装后输入php会出现 command not found的情况,可能是因为没有安装php-cli模式,参考文章:https://www.ytyzx.org/index.php?title=%E5%9C%A8CentOS7%E4%B8%8B%E5%AE%89%E8%A3%85PHP7&variant=zh
yum install php56u-cli
php7.0版本
#rpm 安装 php7 相应的 yum源
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
#yum安装php7
yum install php70w php70w-fpm php70w-mysql php70w-mbstring php70w-mcrypt php70w-gd php70w-imap php70w-ldap php70w-odbc php70w-pear php70w-xml php70w-xmlrpc php70w-pdo
#启动php-fpm服务
sudo systemctl start php-fpm
#设置开机启动
sudo systemctl enable php-fpm
#参考 https://blog.csdn.net/weixin_37939964/article/details/78966326php5.4版本
(php5.4 lampp集成环境:https://excellmedia.dl.sourceforge.net/project/xampp/XAMPP%20Linux/1.8.2/xampp-linux-x64-1.8.2-3-installer.run)
#添加源
rpm -Uvh
#安装
yum -y install php
#安装 PHP 扩展
yum --enablerepo=remi,remi-test install php-mysql php-pgsql php-pecl-mongo php-sqlite \
php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml php-pecl-apc php-cli \
php-pear php-pdo
#后台运行php-cgi进程(执行后如需退出终端,需使用exit退出,否则该后台运行的进程可能运行了6、7个小时之后断掉,参考:https://blog.csdn.net/beijicy/article/details/47317567)
nohup php-cgi -b 9000 -q >/dev/null 2>&1 &
#如修改了php.ini文件需要重启php,需要先查看php-cgi的进程id
#查看php-cgi的进程
ps -ef|grep php-cgi
#利用进程号杀掉进程,再重新运行php-cgi进程
kill -9 进程号
#安装mysql扩展
yum --enablerepo=remi,remi-test install mysql-connector-odbc mysql-devel libdbi-dbd-mysql
#配置nginx文件
#进入/etc/nginx/nginx.conf
#开启php支持,只需要安装php后,打开nginx配置文件中加入以下部分,重启nginx
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# 原始的nginx配置是上面注释的部分,应该改成下面部分
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}