准备工作

#关闭selinux:
$ vi /etc/selinux/config
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加
:wq 保存,退出

$ reboot #重启系统
vi /etc/security/limits.conf

* soft  nofile  65535
* hard  nofile  65535

vi /etc/profile

ulimit -SHn 65535
#生成一个空的www用户
$ groupadd -r www
$ useradd www -g www -M -s /sbin/nologin
#生成一个空的mysql用户
$ groupadd mysql
$ useradd mysql -g mysql -M -s /sbin/nologin
# centos

$ yum install epel-release  //扩展包更新包
$ yum update //更新yum源

$ yum -y install gcc gcc-c++ autoconf automake \
libxml2-devel openssl-devel libcurl-devel libjpeg-devel \
libpng-devel libicu-devel openldap-devel freetype-devel \
libmcrypt libmcrypt-devel mcrypt mhash zlib-devel pcre-devel \
sqlite-devel oniguruma-devel libwebp-devel
yum remove libzip -y
wget https://libzip.org/download/libzip-1.2.0.tar.gz
tar -zxvf libzip-1.2.0.tar.gz
cd libzip-1.2.0
./configure
make && make install
ln /usr/local/lib/libzip/include/zipconf.h /usr/local/include/
# php编译安装
# https://www.php.net/distributions/php-7.4.12.tar.gz

./configure \
 --prefix=/data/php \
 --with-config-file-path=/data/php/etc \
 --with-config-file-scan-dir=/data/php/etc/php.d \
 --with-libdir=lib64 --enable-fpm \
 --with-fpm-user=www --with-fpm-group=www \
 --enable-mysqlnd --with-pdo-mysql=mysqlnd \
 --enable-opcache --enable-pcntl --enable-mbstring --enable-soap \
 --enable-calendar --enable-bcmath \
 --enable-exif --enable-ftp --enable-intl  --with-iconv \
 --enable-shmop --enable-sysvsem \
 --enable-xml --enable-inline-optimization \
 --enable-shared --enable-mbregex \
 --with-openssl --with-zlib \
 --with-curl --enable-sockets --with-zlib-dir \
 --enable-gd --with-jpeg --with-webp \
 --with-gettext --with-freetype --with-mhash \
 --with-ldap --with-xmlrpc --disable-debug --disable-rpath

#--with-zip

$ make
$ make install
#复制配置文件
$ cp php.ini-production /data/php/etc/php.ini

#复制fpm配置文件
$ cp /data/php/etc/php-fpm.conf.default /data/php/etc/php-fpm.conf

#生成配置文件目录 自动挂载配置
$ mkdir /data/php/etc/php.d

# 启动服务
$ cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
$ chmod u+x /etc/init.d/php-fpm
$ service php-fpm start

#随机启动
$ chkconfig php-fpm on
$ jobs
$ fg %n
$ kill -9 pid
$ kill -HUP pid
$ vi /etc/profile

#把php安装路径放入系统路径中
PATH=$PATH:/data/php/bin

$ source /etc/profile
php-fpm 关闭:

pkill php-fpm #强制关闭

/data/php/sbin/php-fpm #启动

kill -INT `cat /data/php/var/run/php-fpm.pid`

php-fpm 重启:
kill -USR2 `cat /data/php/var/run/php-fpm.pid`

查看php-fpm进程数:
ps aux | grep -c php-fpm
#composer安装
$ curl -sS https://getcomposer.org/installer | php
$ mv composer.phar /usr/local/bin/composer
#swoole插件安装
# https://github.com/swoole/swoole-src/archive/v2.0.10-stable.tar.gz   php5
# https://github.com/swoole/swoole-src/archive/v4.0.4.tar.gz   php7+
$ phpize
$ ./configure
$ make
$ make install

extension=swoole.so
# mysql编译安装
# mysql5.7 https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.32.tar.gz

#建立mysql安装和数据路径
$ mkdir -p /data/mysql/data

$ yum -y install make gcc-c++ cmake ncurses-devel bison bison-devel perl perl-devel

cmake \
-DCMAKE_INSTALL_PREFIX=/data/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/data/mysql/data \
-DMYSQL_TCP_PORT=3306 \
-DENABLE_DOWNLOADS=1 \
-DWITH_BOOST=./boost

$ make
$ make install

$ vi /etc/profile

#把mysql安装路径放入系统路径
PATH=$PATH:/data/mysql/bin:/data/mysql/lib

$ source /etc/profile    //使刚才的修改生效

#启动服务
$ cp support-files/mysql.server /etc/init.d/mysqld
$ chmod u+x /etc/init.d/mysqld
#随机启动
$ chkconfig mysqld on

#让mysql安装路径和数据路径的所有者为mysql
$ chown -R mysql:mysql /data/mysql

#初始化数据库
$ mysqld --initialize

#启动mysql服务
$ service mysqld start

#免密码登入
mysqld_safe --skip-grant-tables --skip-networking
mysql -u root
#有密码登入
$ mysql -u root -p

#更新权限
$ mysql> flush privileges

#更换root密码
$ mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');
$ mysql> exit
$ mysql -u root -p

#创建远程账户
$ mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
# nginx编译安装
# http://nginx.org/download/nginx-1.16.0.tar.gz

./configure \
  --prefix=/data/nginx \
  --sbin-path=/data/nginx/nginx \
  --conf-path=/data/nginx/etc/nginx.conf \
  --error-log-path=/data/logs/nginx/error.log \
  --http-log-path=/data/logs/nginx/access.log \
  --pid-path=/data/nginx/nginx.pid  \
  --lock-path=/data/nginx/nginx.lock \
  --user=www \
  --group=www \
  --with-http_ssl_module \
  --with-http_flv_module \
  --with-http_stub_status_module \
  --with-http_gzip_static_module \
  --with-pcre \
  --http-client-body-temp-path=/data/nginx/temp/client/ \
  --http-proxy-temp-path=/data/nginx/temp/proxy/ \
  --http-fastcgi-temp-path=/data/nginx/temp/fcgi/ \
  --http-uwsgi-temp-path=/data/nginx/temp/uwsgi \
  --http-scgi-temp-path=/data/nginx/temp/scgi

  mkdir -p /data/logs/nginx/
  mkdir -p /data/nginx/temp/client/
  mkdir -p /data/nginx/temp/proxy/
  mkdir -p /data/nginx/temp/fcgi/
  mkdir -p /data/nginx/temp/uwsgi
  mkdir -p /data/nginx/temp/scgi

$ make
$ make install
# Tengine编译安装
# http://tengine.taobao.org/download/tengine-2.3.1.tar.gz
# https://github.com/jemalloc/jemalloc/releases/download/5.1.0/jemalloc-5.1.0.tar.bz2
# https://github.com/jemalloc/jemalloc/archive/5.2.0.tar.gz

./configure \
  --prefix=/data/nginx \
  --sbin-path=/data/nginx/nginx \
  --conf-path=/data/nginx/etc/nginx.conf \
  --error-log-path=/data/logs/nginx/error.log \
  --http-log-path=/data/logs/nginx/access.log \
  --pid-path=/data/nginx/nginx.pid  \
  --lock-path=/data/nginx/nginx.lock \
  --user=www \
  --group=www \
  --with-http_ssl_module \
  --with-http_flv_module \
  --with-http_stub_status_module \
  --with-http_gzip_static_module \
  --with-pcre \
  --http-client-body-temp-path=/data/nginx/temp/client/ \
  --http-proxy-temp-path=/data/nginx/temp/proxy/ \
  --http-fastcgi-temp-path=/data/nginx/temp/fcgi/ \
  --http-uwsgi-temp-path=/data/nginx/temp/uwsgi \
  --http-scgi-temp-path=/data/nginx/temp/scgi \
  --dso-path=/data/nginx/dso/path \
  --dso-tool-path=/data/nginx/dso/tool \
  --with-jemalloc=/data/soft/jemalloc

  mkdir -p /data/logs/nginx/
  mkdir -p /data/nginx/temp/client/
  mkdir -p /data/nginx/temp/proxy/
  mkdir -p /data/nginx/temp/fcgi/
  mkdir -p /data/nginx/temp/uwsgi
  mkdir -p /data/nginx/temp/scgi
  mkdir -p /data/nginx/dso/path
  mkdir -p /data/nginx/dso/tool

$ make
$ make install
[Unit]
Description=nginx
After=network.target

[Service]
Type=forking
ExecStart=/data/nginx/nginx
ExecReload=/data/nginx/nginx -s reload
ExecStop=/data/nginx/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target
标签: 防火墙