LNMP环境部署-源码版-第四章

一、源码版LNMP环境

源码版LNMP环境:从官网下载源码包,然后配置、编译、安装,使其达到自定义的安装效果
1、源码文件的获取(官网获取)
nginx源码:打开官网->documentation ->Stable version(稳定版) ->选中nginx-1.14.2右击拷贝链接

image.png

之后在终端使用:wget http://nginx.org/download/nginx-1.14.2.tar.gz 下载nginx-1.14.2.tar.gz包
image.png

php源码:打开官网-> downloads ->点击 php-5.5.36.tar.gz 版本->选中 China cn2.php.net 右击拷贝链接
image.png

之后在终端使用:wget http://mirrors.sohu.com/php/php-7.2.9.tar.gz下载php-5.5.36.tar.gz包
image.png

php版本下载地址:http://mirrors.sohu.com/php/
image.png

之后在终端使用:wget https://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.62-linux-glibc2.12-i686.tar.gz 下载
二、编译环境准备
1、编译工具安装:
因为源程序都是使用gcc gcc-c++ 编写而成的,所以需要安装:yum -y install gcc gcc-c++
image.png

2、源码安装nginx
1)依赖包安装
查找源码安装方法的步骤:nginx官网->documentation->Building nginx from Sources(源码安装)
找到nginx源码下载目录,通过命令:tar -xzf nginx-1.14.2.tar.gz解压
image.png

2)配置、编译、安装
进入nginx-1.14.2目录下,配置configure文件
image.png

./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --with-pcre=../pcre-8.42 --with-zlib=../zlib-1.2.11
image.png

执行完成报错(由于依赖包引起的问题):
./configure: error: SSL modules require the OpenSSL library.
You can either do not enable the modules, or install the OpenSSL library
into the system, or build the OpenSSL library statically from the source
with nginx by using --with-openssl= option.
百度搜索错误信息:nginx SSL modules require the OpenSSL library,查找解决方案:
安装nginx(支持https,即开启SSL模块),需要首先安装pcre、zlib、openssl;
通过命令:yum -y install openssl openssl-devel 安装
安装成功后重新编译操作
image.png

因为配置命令中存在--with-pcre=../pcre-8.42,然而在执行编译时没有找到,所以需要安装pcre-8.42:
nginx官网->documentation->Building nginx from Sources(源码安装)->点击 PCRE
image.png

将pcre-8.42下载到与nginx包所在的目录下(根目录/root/)
wget https://ftp.pcre.org/pub/pcre/pcre-8.42.tar.gz
因为配置命令中存在--with-zlib=../zlib-1.2.11,然而在执行编译时没有找到,所以需要安装zlib-1.2.11:
nginx官网->documentation->Building nginx from Sources(源码安装)->点击 zlib
image.png

进入根目录下载:
wget http://www.zlib.net/zlib-1.2.11.tar.gz
image.png

查看已经下载的pcre-8.42、zlib-1.2.11,并解压
image.png

继续进入nginx目录配置
image.png

以上没有问题,继续make操作
image.png

以上没有问题,执行最后一步操作:make install
image.png

以上说明nginx已经安装成功了
总结:./configure(配置) make(编译) make install(安装)
3)nginx目录分析
查看默认安装的文件目录(一般情况下都会默认安装到/usr/local/目录下):
image.png

4)效果测试
浏览器测试nginx运行效果,输入服务器ip访问
image.png

浏览器访问成功,我们进入html目录下,创建test.html文件,并插入Welcome to nginx!!! 保存退出
image.png

3、源码安装php
1)依赖包安装
php源码:打开官网->documentation ->Chinese (Simplified)-> Unix 系统下的安装->Unix 系统下的 Nginx 1.4.x
获取并解压 PHP 源代码:
image.png

2)配置、编译、安装
配置并构建 PHP。在此步骤您可以使用很多选项自定义 PHP,例如启用某些扩展等。 运行 ./configure --help 命令来获得完整的可用选项清单。 在本示例中,我们仅进行包含 PHP-FPM 和 MySQL 支持的简单配置。
配置:./configure --enable-fpm --with-mysqli --with-pdo-mysql
image.png

配置完成后,最底部报错:configure: error: xml2-config not found. Please check your libxml2 installation.代表着libxml2没有安装,需要安装这个依赖包:yum -y install libxml2-devel
image.png

重新执行配置:./configure --enable-fpm --with-mysqli --with-pdo-mysql
image.png

image.png

安装操作:make install
image.png

创建配置文件,并将其复制到正确的位置。
cp php.ini-development /usr/local/php/php.ini
image.png

cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf
cp sapi/fpm/php-fpm /usr/local/bin
image.png

需要着重提醒的是,如果文件不存在,则阻止 Nginx 将请求发送到后端的 PHP-FPM 模块, 以避免遭受恶意脚本注入的攻击。
将 php.ini 文件中的配置项 cgi.fix_pathinfo 设置为 0 。
打开 php.ini:
vi /usr/local/php/php.ini
定位到 cgi.fix_pathinfo= 并将其修改为如下所示:
cgi.fix_pathinfo=0
image.png

在启动服务之前,需要修改 php-fpm.conf 配置文件,确保 php-fpm 模块使用 www-data 用户和 www-data 用户组的身份运行。
vim /usr/local/etc/php-fpm.conf
找到以下内容并修改:
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
user = www-data
group = www-data
检验系统是否存在,没有此类用户,以上步骤可以不操作
image.png

然后启动 php-fpm 服务:
/usr/local/bin/php-fpm
image.png

3)nginx如何识别php
配置 Nginx 使其支持 PHP 应用:
vi /usr/local/nginx/nginx.conf
修改默认的 location 块,使其支持 .php 文件:
image.png

image.png

下一步配置来保证对于 .php 文件的请求将被传送到后端的 PHP-FPM 模块, 取消默认的 PHP 配置块的注释,并修改为下面的内容:
location ~* .phpdocument_rootfastcgi_script_name;
}
重启 Nginx:./nginx -s reload
image.png

4、编译版安装mysql
1)依赖包安装
mysql官网->DOCUMENTATION->MySQL 5.6 Reference Manual(根据下载的版本选择手册)->Installing and Upgrading MySQL ->Installing MySQL on Unix/Linux Using Generic Binaries(编译版)
cd /root 进入安装包目录
tar -zxvf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz -C /usr/local/ 解压安装包
cd /usr/local
mv mysql-5.7.17-linux-glibc2.5-x86_64/ mysql
cd mysql/support-files/
cp my-default.cnf /etc/my.cnf
vim /etc/my.cnf
添加以下内容:
[mysql]
default-character-set=utf8
[mysqld]
default-storage-engine=INNODB
character_set_server=utf8
2)复制mysql.server到/etc/init.d/目录下(目的想实现开机自动执行效果)
cp mysql.server /etc/init.d/mysql
修改/etc/init.d/mysql参数
vim /etc/init.d/mysql
修改以下内容:
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data

3)出于安全便利,创建一个操作数据库的专门用户
建立一个mysql的组:

groupadd mysql

建立mysql用户,并且把用户放到mysql组:

useradd -r -g mysql mysql

给mysql用户设置一个密码:

passwd mysql

新密码:12121212
给目录/usr/local/mysql 更改拥有者:

chown -R mysql:mysql /usr/local/mysql/

第四步:初始化 mysql 的数据库

cd /usr/local/mysql/bin/

./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

初始化后会生成一个临时密码 root@localhost::*(最好先记录这个临时密码)
root@localhost: 0n(yZo7W42.)
4)给数据库加密

./mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data

5)启动mysql

./mysqld_safe --user=mysql &

检查mysql是否启动

ps -ef|grep mysql

发现有进程便代表启动成功,退出mysql。
mysql>exit
6)进入客户端
登录:

./mysql -uroot -p

Enter password:这里输入之前的临时密码


image.png

2.修改密码
mysql> set password=password('12341234');
7)设置远程访问
1:打开mysql的默认端口3306:

firewall-cmd --zone=public --add-port=3306/tcp --permanent

提示FirewallD is not running,如下图所示。(ps:图片是在网上找的)


image.png

(1)通过systemctl status firewalld查看firewalld状态,发现当前是dead状态,即防火墙未开启。

image.png

(2)通过systemctl start firewalld开启防火墙,没有任何提示即开启成功。
image.png

(3)再次通过systemctl status firewalld查看firewalld状态,显示running即已开启了。
image.png

如果要关闭防火墙设置,可能通过systemctl stop firewalld这条指令来关闭该功能。
image.png

打开3306端口正确为:
[admin@bogon ~] firewall-cmd --zone=public --add-port=3306/tcp --permanent
success
[admin@bogon bin]$ firewall-cmd --reload
success
2:设置mysql的远程访问(暂时不设置)
设置远程访问账号:grant all privileges on . to 远程访问用户名@’%’ identified by ‘用户密码’;
mysql> grant all privileges on . to root@'%' identified by 'root';
刷新:
mysql> flush privileges;
8)设置开机自启动
1、添加服务mysql

cd /usr/local/mysql/bin/

chkconfig --add mysql

2、设置mysql服务为自启动

chkconfig mysql on

第八步:配置环境变量

vim /etc/profile

最后一行添加:
export PATH=PATH
 使修改生效: source /etc/profile
至此,mysql5.7的安装就完成了!!!
2)配置安装
whereis mysql 安装路径

whereis mysql

mysql: /usr/local/mysql /usr/local/mysql/bin/mysql
创建db.php文件


image.png

插入以下内容:

$mysqli = new mysqli("localhost", "root", “12341234"); 

if(!$mysqli)  { 
    echo"database error"; 
}else{

    echo "connection successfully!"

}

$mysqli->close(); 

?>


image.png

你可能感兴趣的:(LNMP环境部署-源码版-第四章)