本次lnmp环境搭建是在Oracle VM Virturalbox 上的centos虚拟机搭建的,centos7+nginx+php+mysql
此次不介绍centos7的安装
1.安装前的检查
1.检查软件更新
yum update
2.检查是否安装wget
rpm -qa wget
3.检查是否安装编译器gcc
rpm -qa gcc
没有就安装 yum install gcc gcc-c++
2.安装nginx
1.安装nginx依赖包
nginx的Rewrite模块和HTTP核心模块会用到PCRE正则表达式语法:
yum install -y pcre pcre-devel
nginx 的各种模块中需要使用gzip压缩:
yum install -y zlib zlib-devel
安全套接字层密码库:
yum install -y openssl openssl-devel
2.下载nginx包并解压到/usr/local/src目录下
cd /usr/local/src
wget http://nginx.org/download/nginx-l.12.2.tar.gz
tar -zxvf nginx-1.12.2.tar.gz
3.编译安装到/usr/local/nginx
cd nginx-1.12.2
./configure --prefix=/usr/local/nginx
make && make install
4. 创建并设置nginx运行账号:
groupadd nginx
useradd -M -g nginx -s /sbin/nologin nginx
cd /user/local/nginx/conf
vim nginx.conf //设置user参数
user nginx nginx
5. 设置nginx为系统服务
vim /lib/systemd/system/nginx.service
文件内容:
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
6.设置nginx.开机启动
systemctl enable nginx.service
7.开启nginx服务
systemctl start nginx.service
8.查看是否启动成功
ps aux |grep nginx
9.浏览器访问vagrantfile 下配置的ip,出现以下界面表示成
10.防火墙开启80端口(nginx默认使用80端口,可在nginx.conf中配置,无需远程访问则不需要开启)
查看防火墙状态
systemctl status firewalld
永久开启80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
重启防火墙
firewall-cmd --reload
查看是否开放成功
firewall-cmd --zone=public --query-port=80/tcp
3.安装mysql
1.查看是否安装mysql
rpm -qa mysql
有则卸载:rpm -e --nodeps 文件名
是否存在与mysql相关的文件和目录:
whereis mysql 是则删除
是否存在mariadb:
rpm -qa |grep mariadb
是则卸载
存在/etc/my.conf,则需要删除
2.安装编译mysql需要的依赖包
yum install libevent* libtool* autoconf* libstd* ncurse* bison* openssl*
3.安装cmake(mysql5.5之后需要使用cmake支持编译安装)
查看是否已安装cmake:
rpm -qa cmake
没有则下载编译安装
cd /usr/local/src
wget http://www.cmake.org/files/v2.8/cmake-2.8.12.1.tar.gz
tar -zxvf cmake-2.8.12.1.tar.gz
cd cmake-2.8.12.1
./configure
make && make install
检查是否cmake安装成功
cmake --version
6cd /usr/local/src
wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.38.tar.gz
tar -zxvf mysql-5.6.38.tar.gz
5.编译安装到/usr/local/mysql
cd mysql-5.6.38
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
make && make install
yum安装mysql
1.配置yum源
在mysql官网中下载yum源rpm安装包:https://dev.mysql.com/downloads/repo/yum/
wget http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm
2.安装mysql源
yum localinstall mysql57-community-release-el6-7.noarch.rpm
3.检查是否安装成功
yum repolist enabled | grep “mysql.-community.”
2.修改默认需要安装的mysql版本
vim /etc/yum.repos.d/mysql-community.repo
改变默认安装的MySQL版本。比如安装5.6版本 enabled=1 其他版本的enabled=0即可
3.设置mysql为系统服务
vim /lib/systemd/system/mysql.service
文件内容:
[Unit]
Description=mysql
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/mysql/support-files/mysql.server start
ExecStop=/usr/local/mysql/support-files/mysql.server stop
ExecRestart=/usr/local/mysql/support-files/mysql.server restart
ExecReload=/usr/local/mysql/support-files/mysql.server reload
PrivateTmp=true
[Install]
WantedBy=multi-user.target
4.设置为开机启动
systemctl enable mysql.service
5.启动mysql
systemctl statrt mysql.service
若是启动失败:
直接使用/usr/local/mysql/support-files/mysql.service restart 启动可查看具体原因:
若是这个原因,/var/lib/mysql目录不存在(放mysql.sock)
mkdir /var/lib/mysql
chown -R mysql:mysql /var/lib/mysql
若是报mariadb.log错误,则查看是否有删除mariadb(rpm -e --nodeps 文件名) 文件名获取:rpm -qa | grep mariadb
6.重新启动
7.设置登录密码
/usr/local/mysql/bin/mysql -u root
set password=password(‘密码’)
4.安装PHP
1.安装php依赖包
yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel
若提示yum中没有可用的软件包libmcrypt和libmcrypt-devel,则需要手动编译安装,可以先在windows宿主主机中前往libmcrypt官网下载然后使用rz指令将包上传至centos7进行编译安装。我下载的包为libmcrypt-2.5.8.tar.gz:
tar -zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure --prefix=/usr/local/libmcrypt
make
make install
如果报
此时ping www.baidu.com 发现ping不通,需要修改/etc/resolv.conf
vim /etc/resolv.conf
nameserver 8.8.8.8
2.下载php包并加压
cd /usr/loacl/src
在windows上前往php官网下载php-7.2.0包,然后使用rz指令将下载好的php安装包上传到centos7上,解压:
tar -zxvf php-7.2.0.tar.gz
3.编译安装
cd php-7.2.0
./configure --prefix=/usr/local/php --disable-fileinfo --enable-fpm --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-openssl --with-zlib --with-curl --enable-ftp --with-gd --with-xmlrpc --with-jpeg-dir --with-png-dir --with-freetype-dir --enable-gd-native-ttf --enable-mbstring --with-mcrypt=/usr/local/libmcrypt --enable-zip --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-mysql-sock=/var/lib/mysql/mysql.sock --without-pear --enable-bcmath
(注意:–with-mcrypt参数指定的是libmcrypt的安装目录。Php7不再使用mysql的库来支持mysql的连接,而是启用了mysqlnd来支持,所以php7的编译已经不再使用–with-mysql参数指定mysql的安装位置了,若想支持mysql,需要设置–enable-mysqlnd、–with-mysqli和–with-pdo-mysql=mysqlnd参数,–with-mysql-sock指定的是编译mysql时-DMYSQL_UNIX_ADDR参数指定的文件)
make && make install
4. 将php包解压目录中的配置文件放置到正确位置(configure命令中的–with-config-file-path设置的位置)
cp php.ini-development /etc/php.ini
5.创建并设置php-fpm运行账号
groupadd www-data -s /sbin/nologin www-data
cd /usr/local/php/etc
cp php-fpm.conf.default php-fpm.conf
vim php-fpm.conf
发现搜索不到“user”(设置运行账号的位置),但发现文件的最后一行:
所以:
cd php-fpm.d
cp www.conf.default www.conf(否则include匹配不到文件)
vim www.conf
收索“user"设置运行账号:
user=www-data
group=www-data
6.配置nginx支持php
vim /usr/local/nginx/conf/nginx.conf
修改完成之后重新启动nginx服务
systemctl start nginx.service
7.设置php-fpm为系统服务:
vim /etc/systemd/system/php-fpm.service
文件内容:
[Unit]
Description=php-fpm
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/php/sbin/php-fpm
PrivateTmp=True
[Install]
WantedBy=multi-user.target
8.设置php-fpm服务开机自启
systemctl enable php-fpm.service
9.启动php-fpm:
systemctl start php-fpm.service
查看是否启动成功
ps aux|grep php-fpm
10.写一个php脚本测试nginx是否已支持php,php是否已支持mysql。
PHP扩展安装说明:
若想安装一些PHP扩展,首先可以在PHP源码目录下的ext子目录中查找是否存在你想安装的扩展,不存在则下载,存在则直接进入扩展源码目录进行安装操作,下面以安装pcntl扩展为例进行说明。
首先编译源码安装pcntl扩展:
cd /usr/local/src/php-7.0.27/ext/pcntl (进入扩展源码目录)
/usr/local/php/bin/phpize(取决于你安装php之后phpize文件的位置)
./configure --with-php-config=/usr/local/php/bin/php-config(取决于你安装php之后php-config文件的位置)
make
make install
然后修改php配置文件:
vim /etc/php.ini
extension=pcntl.so
最后重启php-fpm服务:
systemctl reload php-fpm.service
这样pcntl就安装完成了!