linux+Nginx + Mysql + PHP 搭配可以说目前使用比较广泛 那要想在这台刚安装好系统的服务器上配置这环境,有多种方式
一、傻瓜式一键安装
为了让大家安装环境能简单,方便。有人把它们集成了一个包。
1、LNMP一键安装包 网址:lnmp.org,里面介绍一些要求,功能等 进入到安装页面说明,找到相关的安装说明,运行,然后一步一步按照操作就行了,比较简单
2、使用宝塔,这是更加傻瓜,方便的一款工具,操作服务,只需在网站后台,点点鼠标,就能完成 网址:bt.cn 找到,linux安装,里面有各个系统的安装命令,运行与你系统相关的命令 如centos yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
安装成功后,会显示给你登陆地址和用户名密码 登陆后 可以选择你要安装的环境的软件和版本等。等安装结束,你的linux+Nginx + Mysql + PHP环境也就配成功了
这里我们不多说,那如果手工一步一步的搭配环境的。 之前我们学习了linux安装软件的几种方法,现在我们来试试
二、手工搭建环境
查看是否已安装wget: rpm -qa wget
否则安装: yum install wget
- 查看是否已安装编译器: rpm -qa gcc
否则安装: yum install gcc gcc-c++
安装Nginx
- 安装nginx依赖包
nginx的Rewrite模块和HTTP核心模块会使用到PCRE正则表达式语法:
yum -y install pcre pcre-devel
nginx的各种模块中需要使用gzip压缩:
yum -y install zlib zlib-devel
安全套接字层密码库:
yum -y install openssl openssl-devel
- 下载nginx包并解压(到/usr/local/src目录中)
cd /usr/local/src
wget http://nginx.org/download/nginx-1.1.10.tar.gz
tar -zxvf nginx-1.1.10.tar.gz
- 编译安装(到/usr/local/nginx目录中)
cd nginx-1.1.10
./configure --prefix=/usr/local/nginx
make
make install
- 创建并设置nginx运行账号:
groupadd nginx
useradd -M -g nginx -s /sbin/nologin nginx
cd /usr/local/nginx/conf
vim nginx.conf,设置user参数如下:
user nginx nginx
/usr/local/nginx/sbin/nginx -t
- 启动nginx
/usr/local/nginx/sbin/nginx
5.访问站点IP,出现下图说明安装成功
如果不能访问,可能是防火墙的原因,增加80端口,或关闭防火墙
安装Mysql
- 卸载已有mysql
查看是否已安装mysql:
rpm -qa mysql
有则卸载:
rpm -e mysql // 普通删除模式 rpm -e --nodeps mysql // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除
使用 yum 命令安装 MySQL,安装前我们需要先去官网下载 Yum 资源包
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysql-community-release-el7-5.noarch.rpm yum update yum install mysql-server
权限设置:
chown mysql:mysql -R /var/lib/mysql
初始化 MySQL:
mysqld --initialize
启动 MySQL:
service mysqld start
查看 MySQL 运行状态:
service mysqld status
验证mysql 安装成功,查看版本号
mysqladmin --version
你可以在 MySQL Client(Mysql客户端) 使用 mysql 命令连接到 MySQL 服务器上,默认情况下 MySQL 服务器的登录密码为空,所以本实例不需要输入密码。
命令如下:mysql
以上命令执行后会输出 mysql>提示符,这说明你已经成功连接到Mysql服务器上,你可以在 mysql> 提示符执行SQL命令:
mysql> SHOW DATABASES;
修改mysql root的密码为:123456
[root@host]# mysqladmin -u root password "123456"
再登 陆数据库
[root@host]# mysql -u root -p Enter password:*******
mysql 完成成功
安装PHP
- 安装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
2,下载 wget https://www.php.net/distributions/php-7.2.17.tar.gz
tar -zxvf php-7.2.17.tar.gz
- 编译安装(到/usr/local/php目录)
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(此过程需花费大概20分钟)
make install
- 将php包解压目录中的配置文件放置到正确位置(configure命令中的--with-config-file-path设置的位置)
cp php.ini-development /etc/php.ini
- 创建并设置php-fpm运行账号
groupadd www-data
useradd -M -g 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
- 配置nginx支持php
vim /usr/local/nginx/conf/nginx.conf
修改完成之后记得重启nginx服务:
service nginx start
- 设置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
- 设置php-fpm服务开机自启动:
systemctl enable php-fpm.service
- 启动php-fpm:
systemctl start php-fpm.service
查看是否启动成功:
ps aux | grep php-fpm
10.写一个php脚本测试nginx是否已支持php,php是否已支持mysql。
<?php phpinfo(); ?>
保存为index.php,然后打开网址
成功
至此,LNMP搭建完成!