基于阿里云服务器环境搭建到项目上线系列

前言:最近购买了域名和一台阿里云服务器准备做点东西放上去,所以准备把环境搭建到项目上线的过程记录下来,计划一个系列6篇文章


  1. ​基于阿里云服务器环境搭建到项目上线系列文章之一——putty使用秘钥登录远程服务器​
  2. ​基于阿里云服务器环境搭建到项目上线系列文章之二——搭建LNMP环境​
  3. ​基于阿里云服务器环境搭建到项目上线系列文章之三——安装git​
  4. ​基于阿里云服务器环境搭建到项目上线系列文章之四——安装composer​
  5. ​基于阿里云服务器环境搭建到项目上线系列文章之五——项目仓库github基本使用​
  6. ​基于阿里云服务器环境搭建到项目上线系列文章之六——项目部署​


基于阿里云服务器环境搭建到项目上线系列文章之二——搭建LNMP环境


安装环境


  • Linux CentOS7.4 64位
  • PHP 7.3.6
  • Nginx 1.8
  • MySQL 5.7

PHP安装

提示:由于网络原因,方式1和方式2下载速度可能非常慢,可以通过方式3使用迅雷下载到本地,然后上传到服务器即可(如果网络不好,推荐方式3),具体视情况而定。



下载解压 php-7.3.6.tar.gz
方式1:

cd /root/
wget http://cn2.php.net/get/php-7.3.6.tar.xz/from/this/mirror
tar -xvf mirror

方式2:

cd /root/
wget https://www.php.net/distributions/php-7.3.6.tar.gz
tar -zxvf php-7.3.6.tar.gz

方式3:

下载地址:https://www.php.net/downloads.php
下载到本地后通过ftp等工具上传到服务器上自己习惯的目录,我这里上传到了root目录下
cd /root/
tar -zxvf php-7.3.6.tar.gz


安装 php-7.3.6

cd php-7.3.6

安装依赖:

yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel curl curl-devel openssl openssl-devel libzip*

更新软件扩展

yum -y upgrade

安装或更新cmake

卸载低版本cmake
yum -y remove cmake
cd /root/
wget https://cmake.org/files/v3.10/cmake-3.10.2-Linux-x86_64.tar.gz
tar zxvf cmake-3.10.2-Linux-x86_64.tar.gz
export CMAKE_HOME=/root/cmake-3.10.2-Linux-x86_64
export PATH=$PATH:$CMAKE_HOME/bin
source /etc/profile

此时,你再次查看cmake版本,就已经是3.10.2了:

cmake -version

配置php (现在只是安装一下必要的扩展,等你需要额外的扩展完全可以以后再安装)

cd /root/php-7.3.6
./configure --prefix=/usr/local/php --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-mysqli --with-zlib --with-curl --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-openssl --enable-mbstring --enable-xml --enable-session --enable-ftp --enable-pdo -enable-tokenizer --enable-zip

配置解释:


–prefix=/usr/local/php 这个是你的安装目录
–with-mysqli 这个是mysqli扩展
–with-fpm-user=nginx fpm用户
–with-fpm-group-nginx fpm用户组


此时会有错误提示如下:

checking for libzip... configure: error: system libzip must be upgraded to version >= 0.11

解决方案:

卸载低版本:
yum -y remove libzip-devel
下载安装新版本:
cd /root/php-7.3.6
wget https://libzip.org/download/libzip-1.5.1.tar.gz
tar -zxvf libzip-1.5.1.tar.gz
cd libzip-1.5.1
mkdir build
cd build
cmake ..
make && make install
cd /root/php-7.3.6/

再次执行./configure内容,错误提示:

configure: error: off_t undefined; check your library configuration

解决方案:

vim /etc/ld.so.conf 
#添加如下几行
/usr/local/lib64
/usr/local/lib
/usr/lib
/usr/lib64
#保存退出
:wq
ldconfig -v # 使之生效
cd /root/php-7.3.6/

再次执行./configure内容,出现如下内容说明PHP可以继续安装了:
基于阿里云服务器环境搭建到项目上线系列文章之二——搭建LNMP环境_CentOS7.4 64位
执行如下命令:

make && make install


添加PHP到环境变量
复制配置文件:

cp /root/php-7.3.6/php.ini-development /usr/local/php/lib/php.ini

添加到环境变量:

vim /etc/profile
在结尾添加
PATH=$PATH:/usr/local/php/bin
export PATH
:wq
保存后运行
source /etc/profile
执行命令
php -v

如果出现以下画面就代表php安装成功:
基于阿里云服务器环境搭建到项目上线系列文章之二——搭建LNMP环境_php_02



配置php-fpm


  • 将启动文件加入systemctl,复制到系统文件夹中
cp /root/php-7.3.6/sapi/fpm/php-fpm.service /usr/lib/systemd/system

配置
1.生成 php-fpm.conf
cd /usr/local/php/etc/
复制默认文件
cp php-fpm.conf.default php-fpm.conf
2.生成 www.conf
cd /usr/local/php/etc/php-fpm.d
复制默认文件
cp www.conf.default www.conf
编辑文件
vim www.conf
将其中
user = nginx
group = nginx
改为
user = nobody
group = nobody
如果访问时提示:file not found,把这个改回去试一下能否解决。

启动
systemctl start php-fpm.service
systemctl status php-fpm.service
查看状态,如显示如下就代表启动成功:
基于阿里云服务器环境搭建到项目上线系列文章之二——搭建LNMP环境_阿里云服务器搭建LNMP_03
到这里,PHP已经安装配置成功。



Nginx安装


  1. 下载安装nginx1.8
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum -y install nginx

启动
systemctl start nginx.service 
查看状态 如果出现以下画面就带代表安装成功
systemctl status nginx.service
基于阿里云服务器环境搭建到项目上线系列文章之二——搭建LNMP环境_php_04配置站点
创建文件夹
cd /home/
mkdir /www
创建phpinfo文件
cd www/
vim phpinfo.php
编辑添加
<?php
echo phpinfo();
编辑nginx配置
vim /etc/nginx/conf.d/default.conf
server {
listen 80;
server_name localhost;
root /home/www/;

#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;

location / {
root /usr/share/nginx/html;
index index.html index.htm index.php;
}

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
#root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}

  • 修改网站根目录
    把root指向目录改为/home/www/ 即 root /home/www/;
  • 添加php解析
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;
}



重启
systemctl restart nginx.service

直接访问ip地址,出现下图,说明nginx可用
基于阿里云服务器环境搭建到项目上线系列文章之二——搭建LNMP环境_php_05
也有可能访问不了,请注意阿里云安全组配置规则添加80端口访问,建议同时增加3306端口访问安全组。未配置域名解析,访问 你的 ip/home/www/phpinfo.php 或 ip/phpinfo.php ,如果配置了域名解析,访问 域名/phpinfo.php 出现以下页面就代表nginx已经可以解析php文件了:
基于阿里云服务器环境搭建到项目上线系列文章之二——搭建LNMP环境_阿里云服务器搭建LNMP_06

MySQL安装


  1. 下载安装mysql5.7
rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
yum -y install mysql-community-server mysql-community-devel

启动
启动
systemctl start mysqld
查看状态,显示下图就代表启动成功
systemctl status mysqld
基于阿里云服务器环境搭建到项目上线系列文章之二——搭建LNMP环境_mysql_07设置


获取初始密码

grep 'temporary password' /var/log/mysqld.log

基于阿里云服务器环境搭建到项目上线系列文章之二——搭建LNMP环境_php_08



登录mysql并修改密码

mysql -u root -p
修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

此时会提示错误:


ERROR 1819 (HY000): Your password does not satisfy the current policy requirements


解决方案:

降低安全级别:
set global validate_password_policy=0;
设置密码长度:
set global validate_password_length=6;
再执行修改密码操作即可成功
退出mysql:
exit


配置,修改php.ini 这个值可以从 /etc/my.cnf 找到

vim /usr/local/php/lib/php.ini
修改
mysqli.default_socket = /var/lib/mysql/mysql.sock


重启nginx和php-fpm

systemctl restart nginx.service
systemctl restart php-fpm.service



测试


添加文件到/home/www/文件夹中

vim /home/www/testMysql.php


添加内容

<?php
$mysqli = @new mysqli('localhost','root','123456');
if($mysqli->connect_errno){
die("could not connect to the database:\n" . $mysqli->connect_error);
}else{
echo 'connect success!';
}


现在你访问 域名/testMysql.php 或 ip/home/www/testMysql.php 或 ip/testMysql.php 如果显示 connect success就代表 lnmp环境搭建成功了
基于阿里云服务器环境搭建到项目上线系列文章之二——搭建LNMP环境_php_09
至此,LNMP服务器环境搭建完成。

只要思想不滑坡,办法总比困难多