Nginx安装
nginx 依赖于 zlib pcre ssl 三个模块,安装之前要先安装它们,如果已经安装则忽略
用源码方式安装:
这3个扩展 不需要指定安装目录,他们都默认安装在 /usr/local 目录下。
第一步,我将源代码统一下载,基本上下载的都是最新版。openssl那个一定要下载最新版,以为之前的那个心跳漏洞。
这里用的是yum安装
yum install -y pcre-devel make gcc gcc-c++ ncurses-devel zlib-devel lsof telnet openssl--devel libaio wget openssl openssl-devel autoconf m4 vim libmcrypt-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel bzip2 bzip2-devel curl curl-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel
2:下载 http://nginx.org/en/download.html
3:安装
./configure --prefix=/usr/www/nginx --conf-path=/usr/www/nginx/nginx.conf --pid-path=/usr/www/nginx/nginx.pid --with-http_ssl_module
make&&make install
4:启动及停止
启动直接运行nginx安装目录下的nginx命令
如果是停止 nginx -s stop
PHP
1:下载
前往PHP官网下载最新版本 因PHP7改动有点大 选用了比较成熟稳定的5.6
解压
tar -zxvf mirror
cd php-XXXX
2: 编译PHP
./configure --prefix=/usr/www/php7.1 --with-config-file-path=/usr/www/php7.1/etc --with-bz2 --with-curl --enable-ftp --enable-sockets --disable-ipv6 --with-gd --with-jpeg-dir=/usr/local --with-png-dir=/usr/local --with-freetype-dir=/usr/local --enable-gd-native-ttf --with-iconv-dir=/usr/local --enable-mbstring --enable-calendar --with-gettext --with-libxml-dir=/usr/local --with-zlib --with-pdo-mysql=mysqlnd --with-mysqli --enable-dom --enable-xml --with-libdir=lib64 --enable-pdo --enable-zip --enable-opcache --enable-fpm
make && make install
安装时间比较长 坐下来等吧
php的默认安装位置上面已经指定为/usr/local/php,接下来配置相应的文件:
cp php.ini-development /usr/www/php7.1/php.ini
将etc目标下的 php-fpm.conf 及 etc/php-fpm.d/www.conf 修改过来
当前目录为源码目录注意
然后设置php.ini,使用: vim /usr/local/php/php.ini 打开php配置文件找到cgi.fix_pathinfo配置项,这一项默认被注释并且值为1,根据官方文档的说明,这里为了当文件不存在时,阻止Nginx将请求发送到后端的PHP-FPM模块,从而避免恶意脚本注入的攻击,所以此项应该去掉注释并设置为0
设置完毕保存并退出
此时首先应该创建web用户:
groupadd www
useradd -g www www
修改/usr/www/php5.6/etc/php-fpm.conf 配置文件下对应的配置 149行
修改完成之后,保存并退出,然后执行以下命令启动php-fpm服务:
启动及退出php-fpm
/usr/www/php5.6/sbin/php-fpm
netstat -tln | grep 9000 //启动完成用 查询9000端口使用情况 正常使用则说明PHP-fpm正常运行
Linux下查看端口号所使用的进程号:
使用lsof命令: lsof –i:端口号
php 5.3.3 以后的php-fpm 不再支持 php-fpm 以前具有的 /usr/local/php/sbin/php-fpm (start|stop|reload)等命令,所以不要再看这种老掉牙的命令了,需要使用信号控制:
master进程可以理解以下信号
INT, TERM 立刻终止
QUIT 平滑终止
USR1 重新打开日志文件
USR2 平滑重载所有worker进程并重新载入配置和二进制模块
例如:
先查看php-fpm的master进程号 ps aux|grep php-fpm
kill -QUIT php-fpm主进程ID
配置nginx支持php-fpm
listen 80;
server_name game100.win www.game100.win;
root /data/wwwroot/www;
index index.html index.htm index.php;
location / {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
php 扩展安装 APCU
下载地址:https://pecl.php.net/package/APCu
安装必要扩展
1. tar zxvf apcu-4.0.11.tgz
2. cd apcu-4.0.11
3./usr/www/php7.1/bin/phpize
4../configure --with-php-config=/usr/www/php7.1/bin/php-config
5.make && make install
配置php.ini
extension = apcu.so
apc.enabled= on
apc.shm_size= 64M
apc.enable_cli = on
Mysql 安装
1:卸载系统自带的 mariadb-lib
rpm -qa|grep mariadb
rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64
国外源下载太慢 国内SOHU有镜像源
http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-community-common-5.7.18-1.el7.x86_64.rpm
http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-community-libs-5.7.18-1.el7.x86_64.rpm
http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-community-client-5.7.18-1.el7.x86_64.rpm
http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-community-server-5.7.18-1.el7.x86_64.rpm
依照顺序下载 前安装
rpm -ivh XXXXX
配置文件地址默认在 /ect/my.cnf
配置文件默认数据库文件在 /var/lib/mysql
配置文件默认数据库日志文件在 /var/log/mysqld.log
2:数据库初始化
在 *nix 系统中,为了保证数据库目录为与文件的所有者为 mysql 登陆用户,如果你是以 root 身份运行 mysql 服务,需要执行下面的命令初始化
PS:一定要先初始化再启动mysqld进程
mysqld --initialize --user=mysql
使用的 --initialize 初始化的,会生成一个 root 账户密码,密码在log文件里
cat /var/log/mysqld.log
3:修改 root 密码
该密码被标记为过期了,如果想正常使用还需要修改密码
以前的 password()函数将会被抛弃,官方建议使用下面的命令来修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
同时,如果你设置的密码过于简单也会报错。
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
设置Root登陆 实际使用过程中强烈建议另建用户以配置权限
update user set Host='%' where User='root';
flush privileges;