7. 构建LNAMP高性能WEB服务器架构

Nginx 安装 2

Apache 安装 3

Mysql 安装 4

PHP安装 7

 

 

Nginx 安装

[root@nginx2 ~]# yum install gcc-c++ -y

安装nginx的时候需要的依赖包,解压即可

[root@nginx2 software]# tar -xvf openssl-1.1.0g.tar.gz

[root@nginx2 software]# tar -xvf pcre-8.41.tar.gz

[root@nginx2 software]# tar -xvf zlib-1.2.11.tar.gz

[root@nginx2 software]# tar -xvf nginx-1.12.2.tar.gz

 

添加用户

[root@nginx2 software]# useradd nginx

 

[root@nginx2 software]# cd nginx-1.12.2/

 

配置:

[root@nginx2 nginx-1.12.2]#  ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_ssl_module --with-openssl=/software/openssl-1.1.0g --with-pcre=/software/pcre-8.41 --with-zlib=/software/zlib-1.2.11 --with-http_stub_status_module --conf-path=/usr/local/nginx/nginx.conf

 

编译&安装

[root@nginx2 nginx-1.12.2]# make && make install

 

测试&启动

[root@nginx2 ~]# cd /usr/local/nginx/sbin/

 

[root@nginx2 sbin]# ./nginx -t

nginx: the configuration file /usr/local/nginx/nginx.conf syntax is ok

nginx: configuration file /usr/local/nginx/nginx.conf test is successful

[root@nginx2 sbin]# ./nginx

[root@nginx2 sbin]# ps -ef | grep nginx

root      66606      1  0 22:05 ?        00:00:00 nginx: master process ./nginx

nginx     66607  66606  0 22:05 ?        00:00:00 nginx: worker process

root      66617  47667  0 22:05 pts/0    00:00:00 grep --color=auto nginx

[root@nginx2 nginx]# curl 192.168.119.131
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

 

 

 

 

安装Apache

安装依赖包:

[root@nginx2 software]# yum install libtool -y

 

 

其他三个包aprapr-utilpcre

Apr

[root@nginx2 software]# tar -xvf apr-1.6.3.tar.gz

[root@nginx2 software]# cd apr-1.6.3/
[root@nginx2 apr-1.6.3]# ./configure --prefix=/usr/local/apr/

安装的时候会报错:

rm: cannot remove 'libtoolT': No such file or directory

F1:我们需要把configure文件,查找 $RM "$cfgfile" 这个地方,用#注释掉

F2:configure里面 RM='$RM  -f'   这里的$RM后面一定有一个空格。 如果后面没有空格,直接连接减号,就依然会报错。把RM='$RM'改为RM='$RM  -f'

[root@nginx2 apr-1.6.3]# make && make install

 

Apr-util

[root@nginx2 software]# yum install expat-devel -y

[root@nginx2 software]# tar -xvf apr-util-1.6.1.tar.gz

[root@nginx2 apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util/ --with-apr=/usr/local/apr/ && make && make install

 

Pcre

[root@nginx2 software]# tar -xvf pcre-8.41.tar.gz

[root@nginx2 software]# cd pcre-8.41/

[root@nginx2 pcre-8.41]# ./configure --prefix=/usr/local/pcre/ --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/

[root@nginx2 pcre-8.41]# make && make install

 

安装apache

[root@nginx2 software]# tar -xvf httpd-2.4.29.tar.gz

[root@nginx2 software]# cd httpd-2.4.29/

[root@nginx2 httpd-2.4.29]# ./configure --help

[root@nginx2 httpd-2.4.29]# ./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre/

[root@nginx2 httpd-2.4.29]# make && make install

[root@nginx2 httpd-2.4.29]# cd /usr/local/apache2/

 

先停止nginx ,我们先测试apache是否安装成功

[root@nginx2 apache2]# /usr/local/nginx/sbin/nginx -s stop

[root@nginx2 apache2]# vi conf/httpd.conf

[...]

ServerName localhost:80

[...]

[root@nginx2 apache2]# ./bin/apachectl start

 [root@nginx2 ~]# curl 192.168.119.131
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
 <head>
  <title>Index of /</title>
 </head>
 <body>
<h1>Index of /</h1>
<ul></ul>
</body></html>

[root@nginx2 apache2]# ./bin/apachectl stop

 

apache服务脚本加入到initd目录

[root@nginx2 ~]# cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd

接着我们安装数据库

安装mysql

或者安装mariadb

https://downloads.mariadb.org/mariadb/repositories/#mirror=neusoft&distro=CentOS&distro_release=centos7-amd64--centos7&version=10.2

我们这里选择安装mysql数据库

 

安装cmakencurses-devel

[root@nginx2 software]# yum install cmake -y

[root@nginx2 software]# yum install ncurses-devel -y

 

创建用户

[root@nginx2 ~]# useradd -r -U mysql -M -d /usr/local/mysql/data

 

修改安装目录的所有者和所有组

[root@nginx2 ~]# mkdir /usr/local/mysql
[root@nginx2 ~]# chown -R mysql:mysql /usr/local/mysql

 

修改数据目录的所有者和所有组

[root@nginx2 ~]# mkdir -p /data/mysql

[root@nginx2 ~]# chown -R mysql:mysql /data/mysql/

 

解压

[root@nginx2 ~]# cd /software/
[root@nginx2 software]# tar -xvf mysql-5.7.20.tar.gz  

[boost解压出来即可]

[root@nginx2 software]# tar xvf mysql-boost-5.7.20.tar.gz

 

 

 

配置编译参数

[root@nginx2 mysql-5.7.20]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk  -DMYSQL_DATADIR=/data/mysql/ -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/software/mysql-5.7.20/boost/

 

安装

[root@nginx2 mysql-5.7.20]# make && make install

 

初始化数据库

[root@nginx2 mysql-5.7.20]# cd /usr/local/mysql/bin/
[root@nginx2 bin]#  ./mysql_install_db --user=mysql --datadir=/data/mysql/ --basedir=/usr/local/mysql/

 

复制mysql服务启动配置文件

[root@nginx2 mysql]# cp /etc/my.cnf /etc/my.cnf.bak
[root@nginx2 mysql]# cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
cp: overwrite ‘/etc/my.cnf’? y

 

复制mysql服务启动脚步及加入PATH路径

[root@nginx2 mysql]# vi /etc/profile
[...]

PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
export PATH

[root@nginx2 mysql]# source /etc/profile

 

修改配置文件

[mysqld]

user=mysql
port=3306
socket=/data/mysql/mysql.sock
datadir=/data/mysql/
basedir=/usr/local/mysql/
explicit_defaults_for_timestamp=true

 

[client]
socket=/data/myssql/mysql.sock

 

启动数据库

[root@nginx2 bin]# ./mysqld_safe --user=mysql &

 

查看数据默认的密码

[root@nginx2 ~]# cat /root/.mysql_secret
# Password set for user 'root@localhost' at 2017-12-04 14:33:58
HkDh1go6#O#=

 

查看进程

[root@nginx2 ~]# ps -aux | grep mysql

 

查看端口

[root@nginx2 ~]# netstat -tulnp | grep 3306

 

查看日志

[root@nginx2 ~]# tail /data/mysql/nginx2.err

 

登录数据库

1从命令行登录MySQL数据库服务器 1、登录使用默认3306端口的MySQL

[root@nginx2 ~]# mysql -u root -p

 

2 通过TCP连接管理不同端口的多个MySQL

[root@nginx2 ~]# mysql -u root -p --protocol=tcp --host=localhost --port=3307

 

3 通过socket套接字管理不同端口的多个MySQL

[root@nginx2 ~]# mysql -u root -p --socket=/data/mysql/mysql.sock

 

4 通过端口和IP管理不同端口的多个MySQL

[root@nginx2 ~]# mysql -u root -p -P 3306 -h 127.0.0.1

 

停止mysql

[root@nginx2 ~]# mysqladmin -u root -p shutdown

输入密码

 

 

修改mysql数据库root用户密码

 

[root@nginx2 mysql]# mysql -u root -p
Enter password: 输入老密码,默认密码

[...]

 

查看现在的密码策略

mysql> show VARIABLES like "%password%";

 

对应的官方密码策略表

 0 or LOW      |   Length

1 or MEDIUM  |   Length;numeric,lowercase/uppercase,and special characters

2 or STRONG |  Length;numeric,lowercase/uppercase,and special characters;dictionary file

 

修改为我们设定的密码

mysql> set password='Lxl@890826';

 

设置密码永不过期

[root@nginx2 ]# vi /etc/my.cnf

加入:default_password_lifetime=0

 

修改密码策略

mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=0;

mysql> set password='redhat';

 

 

PHP安装

准备工作:

[root@nginx2 ~]# yum install gd curl curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel -y

 

解压,配置

[root@nginx2 software]# tar -xvf php-7.1.12.tar.gz

 

[root@nginx2 php-7.1.12]# ./configure --prefix=/usr/local/php7.1 --enable-fpm --enable-debug --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --enable-mbstring --with-curl --with-mysqli=/usr/local/mysql/bin/mysql_config

#注意数据库mysqli=后路径

 

编译,安装

[root@nginx2 php-7.1.12]# make && make install

[...

Build complete.
Don't forget to run 'make test'.

Installing shared extensions:     /usr/local/php7.1/lib/php/extensions/debug-non-zts-20160303/
Installing PHP CLI binary:        /usr/local/php7.1/bin/
Installing PHP CLI man page:      /usr/local/php7.1/php/man/man1/
Installing PHP FPM binary:        /usr/local/php7.1/sbin/
Installing PHP FPM defconfig:     /usr/local/php7.1/etc/
Installing PHP FPM man page:      /usr/local/php7.1/php/man/man8/
Installing PHP FPM status page:   /usr/local/php7.1/php/php/fpm/
Installing phpdbg binary:         /usr/local/php7.1/bin/
Installing phpdbg man page:       /usr/local/php7.1/php/man/man1/
Installing PHP CGI binary:        /usr/local/php7.1/bin/
Installing PHP CGI man page:      /usr/local/php7.1/php/man/man1/
Installing build environment:     /usr/local/php7.1/lib/php/build/
Installing header files:          /usr/local/php7.1/include/php/
Installing helper programs:       /usr/local/php7.1/bin/
  program: phpize
  program: php-config
Installing man pages:             /usr/local/php7.1/php/man/man1/
  page: phpize.1
  page: php-config.1
Installing PEAR environment:      /usr/local/php7.1/lib/php/
[PEAR] Archive_Tar    - installed: 1.4.3
[PEAR] Console_Getopt - installed: 1.4.1
[PEAR] Structures_Graph- installed: 1.1.1
[PEAR] XML_Util       - installed: 1.4.2
[PEAR] PEAR           - installed: 1.10.5
Wrote PEAR system config file at: /usr/local/php7.1/etc/pear.conf
You may want to add: /usr/local/php7.1/lib/php to your php.ini include_path
/software/php-7.1.12/build/shtool install -c ext/phar/phar.phar /usr/local/php7.1/bin
ln -s -f phar.phar /usr/local/php7.1/bin/phar
Installing PDO headers:           /usr/local/php7.1/include/php/ext/pdo/

...]

 

复制配置文件
[root@nginx2 php-7.1.12]# cp php.ini-production /usr/local/php7.1/lib/php.ini

[root@nginx2 ~]# cp /usr/local/php7.1/etc/php-fpm.conf.default /usr/local/php7.1/etc/php-fpm.conf

 

复制启动脚本文件

[root@nginx2 ~]# cp /software/php-7.1.12/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

[root@nginx2 ~]# chmod +x /etc/init.d/php-fpm

 

启动

[root@nginx2 ~]# /etc/init.d/php-fpm start

[root@nginx2 etc]# ps -ef | grep php
root      32511      1  0 23:30 ?        00:00:00 php-fpm: master process (/usr/local/php7.1/etc/php-fpm.conf)
nobody    32512  32511  0 23:30 ?        00:00:00 php-fpm: pool www
nobody    32513  32511  0 23:30 ?        00:00:00 php-fpm: pool www

 

 

 

报错:

[root@nginx ~]# /etc/init.d/php-fpm start
Starting php-fpm [29-Nov-2017 16:43:01] WARNING: Nothing matches the include pattern '/usr/local/php7.1/etc/php-fpm.d/*.conf' from /usr/local/php7.1/etc/php-fpm.conf at line 125.
[29-Nov-2017 16:43:01] ERROR: No pool defined. at least one pool section must be specified in config file
[29-Nov-2017 16:43:01] ERROR: failed to post process the configuration
[29-Nov-2017 16:43:01] ERROR: FPM initialization failed
 failed

解决:

[root@nginx php-fpm.d]# pwd
/usr/local/php7.1/etc/php-fpm.d
[root@nginx php-fpm.d]# cp www.conf.default www.conf

如果还有报错可能是配置文件php-fpm.conf最后一行,默认是注释的,去掉注释即可。

include=/usr/local/php7.1/etc/php-fpm.d/*.conf

 

 

 

 

Nginxphp配置

[root@nginx2 ~]# vi /usr/local/nginx/nginx.conf

[root@nginx2 nginx]# cat nginx.conf
worker_processes  4;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  www.doudoua.com localhost;
        error_page  404              /404.html;
        error_page   500 502 503 504  /50x.html;
        location / {
            root    html/a;
            index   index.html index.htm;
}
location ~ \.php$ {
            root   /www/php/;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
            fastcgi_param SCRIPT_FILENAME  /usr/local/nginx/html/a$fastcgi_script_name;
            include    fastcgi_params;
}
    }
}

 

 

创建php首页

[root@nginx2 a]# pwd
/usr/local/nginx/html/a
[root@nginx2 a]# vi index.php
<?php
phpinfo();
?>

 

 

测试配置文件,重启

[root@nginx2 ~]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/nginx.conf test is successful
[root@nginx2 ~]# /usr/local/nginx/sbin/nginx -s reload

 

转载于:https://www.cnblogs.com/lingxiaolong/p/7927916.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值