nginx
nginx中的rewrite module、gzip module、Http SSL module需要安装PCRE、zlib、OpenSSL,这里为了方便,可以使用yum安装,也可以自行下载安装包,进行编译安装:
1 | 创建nginx运行用户 |
TCMalloc的全称为Thread-Caching Malloc,是谷歌开发的开源工具google-perftools中的一个成员。与标准的glibc库的Malloc相比,TCMalloc库在内存分配效率和速度上要高很多,这在很大程度上提高了服务器在高并发情况下的性能,从而降低了系统的负载。为了优化内存,需要安装gperftools gperftools-devel,直接yum即可,想动手的话,请看后面的参考链接。
下载相关的软件包:
1 | cd /usr/local/src |
编译参数如下,NGINX核心知识100讲课件:
1 | ./configure --with-http_auth_request_module --with-http_realip_module --with-http_v2_module --with-debug --with-http_random_index_module --with-http_sub_module --with-http_addition_module --with-http_secure_link_module --with-http_ssl_module --with-stream_ssl_module --with-stream_realip_module --with-stream_ssl_preread_module --with-stream --add-module=/usr/local/src/ngx_cache_purge/ --add-module=/usr/local/src/nginx-http-concat/ --with-http_slice_module --with-google_perftools_module --with-threads --with-ld-opt=-ltcmalloc --with-http_gzip_static_module --with-http_gunzip_module --with-http_stub_status_module |
安装完成之后,启动nginx:
1 | # 检查配置文件是否正确 |
使用systemctl设置开机启动:
1 | [root@bogon ~]# cat /usr/lib/systemd/system/nginx.service |
文件说明:
1 | [Unit]:服务的说明 |
参考链接:
nginx-合并前端资源nginx-http-concat模块
附安装jemalloc的方法,本次未使用:
1 | wget https://github.com/jemalloc/jemalloc/releases/download/5.2.1/jemalloc-5.2.1.tar.bz2 |
MYSQL 5.7
先安装相关的依赖包:
1 | yum install -y gcc gcc-devel gcc-c++ gcc-c++-devel autoconf* automake* zlib* libxml* ncurses-devel ncurses libgcrypt* libtool* cmake openssl openssl-devel bisonbison-devel perl-Data-Dumper boost boost-doc boost-devel |
创建用户以及数据存放目录:
1 | useradd -M -s /sbin/nologin mysql |
打开https://dev.mysql.com/downloads/mysql/ ,Select Operating System 选 Source Code,Select OS Version选 Generic Linux,下载带boost库的源码:
1 | wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.27.tar.gz |
编译参数:
1 | cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ |
make阶段会非常久,需要耐心等待下。编译完成之后,创建所需目录,然后创建my.cnf文件:
1 | mkdir -p /usr/local/mysql/data #数据存储目录 |
初始化 mysql 数据库
之前版本初始化数据库的脚本是放在/usr/local/mysql/script目录下的mysql_install_db,但是现在已移除,转而使用mysqld替代。
注意:-–datadir目标目录下不能有数据文件。-–initialize 会生成一个随机密码,而 -–initialize-insecure 不会生成密码。如果有随机密码,可以在/usr/local/mysql/log/mysqld.log找到。如果未定义log日志目录,则直接使用grep ‘temporary password’ /var/log/mysqld.log查找。
要修改root密码,可以直接运行mysql_secure_installation即可。
1 | rm -rf /usr/local/mysql/data/* |
初始化/usr/local/mysql/bin/mysqld运行完成之后,就直接退出了,需要再次启动,这次就直接以服务方式启动:
1 | cp support-files/mysql.server /etc/init.d/mysqld |
然后再使用mysql_secure_installation修改root本地登录密码
1 | mysql_secure_installation |
参考链接
源码安装:https://dev.mysql.com/doc/refman/5.7/en/source-installation.html
使用systemd:https://dev.mysql.com/doc/refman/5.7/en/using-systemd.html
编译选项:https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html
my.cnf配置文件说明:https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html
PHP 7.2
先安装基础环境:
1 | yum install php-mcrypt libmcrypt libmcrypt-devel autoconf freetype gd libmcrypt libpng libpng-devel libjpeg libxml2 libxml2-devel zlib curl curl-devel re2c net-snmp-devel libjpeg-devel php-ldap openldap-devel openldap-servers openldap-clients freetype-devel gmp-devel -y |
在 https://www.php.net/downloads.php 下载7.2.22版本:
1 | wget https://www.php.net/distributions/php-7.2.22.tar.bz2 |
编译安装:
1 | cp -frp /usr/lib64/libldap* /usr/lib/ |
配置:
1 | cp php.ini-production /usr/local/php/etc/php.ini |
修改/usr/local/nginx/conf/nginx.conf的配置,让其解析php:
1 | location / { |
修改完systemctl reload nginx.service,再编写一个phpinfo页面,能正常访问就表示部署成功了。
1 | vim /usr/local/nginx/html/index.php |
参考资料: