1.安装gcc编译器

  基本所有编译安装包都需要gcc编译器,而且编译安装gcc也需要一个编译器,这是一个悖论。所以,这里只能寻求rpm包安装。但是rpm包需要匹配特定的操作系统内核,所以没有一个通用的包,只能花心思去寻找了

以CentOS7.1.1503 为例,在http://vault.centos.org/中找到适合的版本对应的gcc-rpm

gcc-4.8.3-9.el7.x86_64.rpm http://vault.centos.org/7.1.1503/os/x86_64/Packages/gcc-4.8.3-9.el7.x86_64.rpm
 mpfr-3.1.1-4.el7.x86_64.rpm http://vault.centos.org/7.1.1503/os/x86_64/Packages/mpfr-3.1.1-4.el7.x86_64.rpm
libmpc-1.0.1-3.el7.x86_64.rpm http://vault.centos.org/7.1.1503/os/x86_64/Packages/libmpc-1.0.1-3.el7.x86_64.rpm
kernel-headers-3.10.0-229.el7.x86_64.rpm http://vault.centos.org/7.1.1503/os/x86_64/Packages/kernel-headers-3.10.0-229.el7.x86_64.rpm
glibc-headers-2.17-78.el7.x86_64.rpm http://vault.centos.org/7.1.1503/os/x86_64/Packages/glibc-headers-2.17-78.el7.x86_64.rpm
glibc-devel-2.17-78.el7.x86_64.rpm http://vault.centos.org/7.1.1503/os/x86_64/Packages/glibc-devel-2.17-78.el7.x86_64.rpm
cpp-4.8.3-9.el7.x86_64.rpm http://vault.centos.org/7.1.1503/os/x86_64/Packages/cpp-4.8.3-9.el7.x86_64.rpm
gcc c++依赖组件
libstdc++-devel-4.8.3-9.el7.x86_64.rpm http://vault.centos.org/7.1.1503/os/x86_64/Packages/libstdc++-devel-4.8.3-9.el7.x86_64.rpm
gcc-c++-4.8.3-9.el7.x86_64.rpm http://vault.centos.org/7.1.1503/os/x86_64/Packages/gcc-c++-4.8.3-9.el7.x86_64.rpm

  下载完成后依次安装

rpm -ivh mpfr-3.1.1-4.el7.x86_64.rpm 
rpm -ivh libmpc-1.0.1-3.el7.x86_64.rpm
rpm -ivh kernel-headers-3.10.0-229.el7.x86_64.rpm
rpm -ivh glibc-headers-2.17-78.el7.x86_64.rpm
rpm -ivh glibc-devel-2.17-78.el7.x86_64.rpm
rpm -ivh cpp-4.8.3-9.el7.x86_64.rpm
rpm -ivh gcc-4.8.3-9.el7.x86_64.rpm
安装gcc c++
rpm -ivh libstdcdevel-4.8.3-9.el7.x86_64.rpm
rpm -ivh gcc-c4.8.3-9.el7.x86_64.rpm

  查看版本,安装成功后会显示环境变量信息

gcc -v

Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.3/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.3-20140911/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.3-20140911/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC)

至此,gcc编译器安装完毕.

2.安装perl

在perl官网https://www.perl.org下载gz包

perl-5.22.1.tar.gz http://www.cpan.org/src/5.0/perl-5.22.1.tar.gz

执行编译安装

tar -zxvf perl-5.22.1.tar.gz
cd perl-5.22.1
./Configure -des -Dprefix=/usr/local/perl
make
make test
make install

完成安装后查看版本会显示环境变量

perl -v

This is perl 5, version 22, subversion 1 (v5.22.1) built for x86_64-linux

Copyright 1987-2015, Larry Wall

Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl". If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.

至此,Perl安装完毕.

3.安装ncurses-devel  rpm.

ncurses-devel-5.9-13.20130511.el7.x86_64.rpm http://vault.centos.org/7.1.1503/os/x86_64/Packages/ncurses-devel-5.9-13.20130511.el7.x86_64.rpm
rpm -ivh ncurses-devel-5.9-13.20130511.el7.x86_64.rpm

至此,ok.

4.安装cmake

cmake-3.4.1.tar.gz https://cmake.org/files/v3.4/cmake-3.4.1.tar.gz

tar -zxvf cmake-3.4.1.tar.gz

cd cmake-3.4.1
 ./bootstrap
make

make install

至此,ok.

5.安装mysql

下载mysql和boost_1_59_0.tar.gz

boost_1_59_0.tar.gz http://120.52.73.44/nchc.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
mysql-5.7.10.tar.gz http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.10.tar.gz

解压目录

tar -zxvf mysql-5.7.10.tar.gz

cd mysql-5.7.10

创建账号

groupadd -r mysql

useradd -s /sbin/nologin -g mysql -r mysql

id mysql

编译

  1. cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/usr/local/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/mysqldb -DMYSQL_TCP_PORT=3306 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=<boost_1_59_0.tar.gz包所在目录>

编译参数细节

-DCMAKE_INSTALL_PREFIX=dir_name 设置mysql安装目录
-DMYSQL_UNIX_ADDR=file_name 设置监听套接字路径,这必须是一个绝对路径名。默认为/tmp/mysql.sock
-DDEFAULT_CHARSET=charset_name 设置服务器的字符集。
缺省情况下,MySQL使用latin1的(CP1252西欧)字符集。cmake/character_sets.cmake文件包含允许的字符集名称列表。
-DDEFAULT_COLLATION=collation_name 设置服务器的排序规则。
-DWITH_INNOBASE_STORAGE_ENGINE=1 
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1
存储引擎选项:

MyISAM,MERGE,MEMORY,和CSV引擎是默认编译到服务器中,并不需要明确地安装。

静态编译一个存储引擎到服务器,使用-DWITH_engine_STORAGE_ENGINE= 1

可用的存储引擎值有:ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (partitioning support), 和PERFSCHEMA (Performance Schema)

-DMYSQL_DATADIR=dir_name 设置mysql数据库文件目录
-DMYSQL_TCP_PORT=port_num 设置mysql服务器监听端口,默认为3306
-DENABLE_DOWNLOADS=bool 是否要下载可选的文件。例如,启用此选项(设置为1),cmake将下载谷歌所使用的测试套件运行单元测试。

注:若从新配置需要删除CMakeCache.txt文件.

rm <安装包目录>/CMakeCache.txt

make,编译所需内存最好大于2GB,否则可能会出现编译器内存不足自动结束进程

make

make install

创建数据库文件夹

mkdir /data

mkdir /data/mysqldb

chown -R mysql:mysql /data/mysqldb

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

复制配置模板到/etc,MySQL默认加载配置文件路径是/etc/my.cnf,如需自定义配置文件路径,可以在初始化数据库的时候在mysqld命令加上--defaults-file=<配置项路径>

cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

初始化数据库,5.7前后版本在初始化数据库方面有差异,因为5.7之后官方建议用mysqld来代替mysql_install_db,详情请参见官方文档

5.7之前版本 /usr/local/mysql/bin/mysql_install_db --user=mysql --datadir=/data/mysqldb
5.7之后版本 /usr/local/mysql/bin/mysqld --initialize --user=mysql
5.7之后版本,用--initialize-insecure代替--initialize后初始化的root账号将会为空密码,否则密码会被记录在--log-error[=file_name]配置项配置的文件中(或第一次启动时,会在root目录下生产一个随机的密码,文件名为.mysql_secret?) /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql

配置启动项

centOS7之前的启动方式
把服务脚本模板复制到/etc/init.d下 cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
 

chmod 755 /etc/init.d/mysqld

如果不存在则运行chkconfig --add mysqld chkconfig --list mysqld
 

chkconfig --add mysqld

设置MySQL在345等级自动启动 chkconfig --level 345 mysqld on
或用这个命令设置开机启动 chkconfig mysqld on
如果提示pid错误,重启一下系统 service mysqld start
 

service mysqld restart

 

service mysqld stop

修改root密码

新设密码 /usr/local/mysql/bin/mysqladmin -u root password "123456"
修改密码 /usr/local/mysql/bin/mysqladmin -uroot -p123456 password "1234567"

其他命令

查看mysqld进程 ps -ef | grep mysql
查看mysqld进程详情,包括正在运行的服务配置文件情况 ps aux|grep mysqld
自定义配置参数启动mysqld ./mysqld --defaults-file=../my.cnf
开启firewalld3306tcp端口例外 firewall-cmd --permanent --zone=public --add-port=3306/tcp

6.安装pcre-devel

pcre-devel-8.32-14.el7.x86_64.rpm http://vault.centos.org/7.1.1503/os/x86_64/Packages/pcre-devel-8.32-14.el7.x86_64.rpm
rpm -ivh pcre-devel-8.32-14.el7.x86_64.rpm

ok.

7.安装zlib-devel

zlib-devel-1.2.7-13.el7.x86_64.rpm http://vault.centos.org/7.1.1503/os/x86_64/Packages/zlib-devel-1.2.7-13.el7.x86_64.rpm
rpm -ivh zlib-devel-1.2.7-13.el7.x86_64.rpm 

ok.

8.安装openssl

openssl-1.0.1e-42.el7.x86_64.rpm http://vault.centos.org/7.1.1503/os/x86_64/Packages/openssl-1.0.1e-42.el7.x86_64.rpm
keyutils-libs-devel-1.5.8-3.el7.x86_64.rpm http://vault.centos.org/7.1.1503/os/x86_64/Packages/keyutils-libs-devel-1.5.8-3.el7.x86_64.rpm
libcom_err-devel-1.42.9-7.el7.x86_64.rpm http://vault.centos.org/7.1.1503/os/x86_64/Packages/libcom_err-devel-1.42.9-7.el7.x86_64.rpm
libsepol-devel-2.1.9-3.el7.x86_64.rpm http://vault.centos.org/7.1.1503/os/x86_64/Packages/libsepol-devel-2.1.9-3.el7.x86_64.rpm
pkgconfig-0.27.1-4.el7.x86_64.rpm http://vault.centos.org/7.1.1503/os/x86_64/Packages/pkgconfig-0.27.1-4.el7.x86_64.rpm
libselinux-devel-2.2.2-6.el7.x86_64.rpm http://vault.centos.org/7.1.1503/os/x86_64/Packages/libselinux-devel-2.2.2-6.el7.x86_64.rpm
libverto-devel-0.2.5-4.el7.x86_64.rpm http://vault.centos.org/7.1.1503/os/x86_64/Packages/libverto-devel-0.2.5-4.el7.x86_64.rpm
krb5-devel-1.12.2-14.el7.x86_64.rpm http://vault.centos.org/7.1.1503/os/x86_64/Packages/krb5-devel-1.12.2-14.el7.x86_64.rpm
openssl-devel-1.0.1e-42.el7.x86_64.rpm http://vault.centos.org/7.1.1503/os/x86_64/Packages/openssl-devel-1.0.1e-42.el7.x86_64.rpm
rpm -ivh openssl-1.0.1e-42.el7.x86_64.rpm
rpm -ivh keyutils-libs-devel-1.5.8-3.el7.x86_64.rpm
rpm -ivh libcom_err-devel-1.42.9-7.el7.x86_64.rpm
rpm -ivh libsepol-devel-2.1.9-3.el7.x86_64.rpm
rpm -ivh pkgconfig-0.27.1-4.el7.x86_64.rpm
rpm -ivh libselinux-devel-2.2.2-6.el7.x86_64.rpm
rpm -ivh libverto-devel-0.2.5-4.el7.x86_64.rpm
rpm -ivh krb5-devel-1.12.2-14.el7.x86_64.rpm
rpm -ivh openssl-devel-1.0.1e-42.el7.x86_64.rpm

9.安装nginx,下载gz包

nginx-1.9.9.tar.gz http://nginx.org/download/nginx-1.9.9.tar.gz

创建nginx用户和组

groupadd -r nginx

useradd -s /sbin/nologin -g nginx -r nginx

id nginx

解压,编译

tar -zxvf nginx-1.9.9.tar.gz

cd nginx-1.9.9

配置

./configure --with-http_stub_status_module --with-http_ssl_module --user=nginx --group=nginx

配置结束后会列出配置摘要,按照上面安装的组件和配置参数,摘要应该是这样的

Configuration summary
+ using system PCRE library
+ using system OpenSSL library
+ md5: using OpenSSL library
+ sha1: using OpenSSL library
+ using system zlib library

nginx path prefix: "/usr/local/nginx"
nginx binary file: "/usr/local/nginx/sbin/nginx"
nginx configuration prefix: "/usr/local/nginx/conf"
nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
nginx pid file: "/usr/local/nginx/logs/nginx.pid"
nginx error log file: "/usr/local/nginx/logs/error.log"
nginx http access log file: "/usr/local/nginx/logs/access.log"
nginx http client request body temporary files: "client_body_temp"
nginx http proxy temporary files: "proxy_temp"
nginx http fastcgi temporary files: "fastcgi_temp"
nginx http uwsgi temporary files: "uwsgi_temp"
nginx http scgi temporary files: "scgi_temp"

编译,安装

make
make install

编辑pid文件

打开pid文件

vi /usr/local/nginx/logs/nginx.pid

随机设置一个pid值 5692
编辑nginx全局配置文件

vi /usr/local/nginx/conf/nginx.conf

开启启动pid,路径是上面创建的pid文件 pid /usr/local/nginx/logs/nginx.pid;

启动/重启/停止服务命令

/usr/local/nginx/sbin/nginx

/usr/local/nginx/sbin/nginx -s reload

/usr/local/nginx/sbin/nginx -s stop

创建开机启动项

centOS7之后的启动方式

CentOS 7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,像需要开机不登陆就能运行的程序,还是存在系统服务里吧,即:/usr/lib/systemd/system目录下

每一个服务以.service结尾,一般会分为3部分:[Unit]、[Service]和[Install]

这里创建一个mysql.service服务

vi /usr/lib/systemd/system/nginx.service
 编辑nginx.service [Unit]
Description=nginx
After=network.target
 
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target
开启开机加载 systemctl enable nginx.service

添加防火墙允许http服务

firewall-cmd --permanent --zone=public --add-service=http
systemctl restart firewalld

10.安装libxml2-devel

xz-devel-5.1.2-9alpha.el7.x86_64.rpm http://vault.centos.org/7.1.1503/os/x86_64/Packages/xz-devel-5.1.2-9alpha.el7.x86_64.rpm
libxml2-devel-2.9.1-5.el7_0.1.x86_64.rpm http://vault.centos.org/7.1.1503/os/x86_64/Packages/libxml2-devel-2.9.1-5.el7_0.1.x86_64.rpm

rpm -ivh xz-devel-5.1.2-9alpha.el7.x86_64.rpm

rpm -ivh libxml2-devel-2.9.1-5.el7_0.1.x86_64.rpm 

11.安装bzip2 bzip2-devel

bzip2-1.0.6-12.el7.x86_64.rpm http://vault.centos.org/7.1.1503/os/x86_64/Packages/bzip2-1.0.6-12.el7.x86_64.rpm
bzip2-devel-1.0.6-12.el7.x86_64.rpm http://vault.centos.org/7.1.1503/os/x86_64/Packages/bzip2-devel-1.0.6-12.el7.x86_64.rpm
rpm -ivh bzip2-1.0.6-12.el7.x86_64.rpm
rpm -ivh bzip2-devel-1.0.6-12.el7.x86_64.rpm

12.安装curl-devel

libcurl-devel-7.29.0-19.el7.x86_64.rpm http://vault.centos.org/7.1.1503/os/x86_64/Packages/libcurl-devel-7.29.0-19.el7.x86_64.rpm
rpm -ivh libcurl-devel-7.29.0-19.el7.x86_64.rpm

13.安装readline-devel

readline-devel-6.2-9.el7.x86_64.rpm http://vault.centos.org/7.1.1503/os/x86_64/Packages/readline-devel-6.2-9.el7.x86_64.rpm
rpm -ivh readline-devel-6.2-9.el7.x86_64.rpm

14.安装freetype freetype-devel

freetype-2.4.11-9.el7.x86_64.rpm http://vault.centos.org/7.1.1503/os/x86_64/Packages/freetype-2.4.11-9.el7.x86_64.rpm
freetype-devel-2.4.11-9.el7.x86_64.rpm http://vault.centos.org/7.1.1503/os/x86_64/Packages/freetype-devel-2.4.11-9.el7.x86_64.rpm
rpm -ivh freetype-2.4.11-9.el7.x86_64.rpm
rpm -ivh freetype-devel-2.4.11-9.el7.x86_64.rpm

15.安装libjpeg-turbo libpng libjpeg-turbo-devel libpng-devel

libjpeg-turbo-1.2.90-5.el7.x86_64.rpm http://vault.centos.org/7.1.1503/os/x86_64/Packages/libjpeg-turbo-1.2.90-5.el7.x86_64.rpm
libjpeg-turbo-devel-1.2.90-5.el7.x86_64.rpm http://vault.centos.org/7.1.1503/os/x86_64/Packages/libjpeg-turbo-devel-1.2.90-5.el7.x86_64.rpm
libpng-1.5.13-5.el7.x86_64.rpm http://vault.centos.org/7.1.1503/os/x86_64/Packages/libpng-1.5.13-5.el7.x86_64.rpm
libpng-devel-1.5.13-5.el7.x86_64.rpm http://vault.centos.org/7.1.1503/os/x86_64/Packages/libpng-devel-1.5.13-5.el7.x86_64.rpm
rpm -ivh libjpeg-turbo-1.2.90-5.el7.x86_64.rpm
rpm -ivh libjpeg-turbo-devel-1.2.90-5.el7.x86_64.rpm
rpm -ivh libpng-1.5.13-5.el7.x86_64.rpm
rpm -ivh libpng-devel-1.5.13-5.el7.x86_64.rpm

16.安装openldap openldap-devel

openldap-2.4.39-6.el7.x86_64.rpm http://vault.centos.org/7.1.1503/os/x86_64/Packages/openldap-2.4.39-6.el7.x86_64.rpm
cyrus-sasl-2.1.26-17.el7.x86_64.rpm http://vault.centos.org/7.1.1503/os/x86_64/Packages/cyrus-sasl-2.1.26-17.el7.x86_64.rpm
cyrus-sasl-devel-2.1.26-17.el7.x86_64.rpm http://vault.centos.org/7.1.1503/os/x86_64/Packages/cyrus-sasl-devel-2.1.26-17.el7.x86_64.rpm
openldap-devel-2.4.39-6.el7.x86_64.rpm http://vault.centos.org/7.1.1503/os/x86_64/Packages/openldap-devel-2.4.39-6.el7.x86_64.rpm
rpm -ivh openldap-2.4.39-6.el7.x86_64.rpm
rpm -ivh cyrus-sasl-2.1.26-17.el7.x86_64.rpm
rpm -ivh cyrus-sasl-devel-2.1.26-17.el7.x86_64.rpm
rpm -ivh openldap-devel-2.4.39-6.el7.x86_64.rpm

17.安装libmcrypt,下载gz包

libmcrypt-2.5.7.tar.gz ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz

tar -zxvf libmcrypt-2.5.7.tar.gz

cd libmcrypt-2.5.7

./configure

make

make install

18.安装PHP-FPM,下载gz包

php-7.0.1.tar.gz http://cn2.php.net/distributions/php-7.0.1.tar.gz

为了编译程序能够找到相关依赖类库,必须编辑一下类库识别路径

 

vi /etc/ld.so.conf.d/local.conf

添加该行(32位),注意,如果是64位系统继续添加下一句 /usr/local/lib
添加该行(64位,32位系统不需要) /usr/local/lib64
  :wq
使之生效 ldconfig -v

解压

tar -zxvf php-7.0.1.tar.gz

cd php-7.0.1

配置,可参考官方文档相关配置项说明:http://php.net/manual/zh/configure.about.php

./configure --prefix=/usr/local/php --exec-prefix=/usr/local/php --bindir=/usr/local/php/bin --sbindir=/usr/local/php/sbin --includedir=/usr/local/php/include --libdir=/usr/local/php/lib/php --mandir=/usr/local/php/php/man --with-config-file-path=/usr/local/php/etc --with-mysql-sock=/var/run/mysql/mysql.sock --with-mcrypt=/usr/include --with-mhash --with-openssl --with-mysql=shared,mysqlnd --with-mysqli=shared,mysqlnd --with-pdo-mysql=shared,mysqlnd --with-gd --with-iconv --with-zlib --enable-zip --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-mbregex --enable-mbstring --enable-ftp --enable-gd-native-ttf --enable-pcntl --enable-sockets --with-xmlrpc --enable-soap --without-pear --with-gettext --enable-session --with-curl --with-jpeg-dir --with-freetype-dir --enable-opcache --enable-fpm --enable-fastcgi --with-fpm-user=nginx --with-fpm-group=nginx --without-gdbm --disable-fileinfo

编译,安装

make

make install

安装成功后,如果没有自定义过目录,常用配置用到的默认目录如下

/usr/local/php/sbin/php-fpm

/usr/local/php/etc/php-fpm.conf.defualt

/usr/local/php/etc/php.ini

加载配置项

复制php-fpm配置模板

cp php-fpm.conf.default php-fpm.conf

 

cd php-fpm.d

复制www配置模板

cp www.conf.default www.conf

编辑php-fpm配置

vi /usr/local/php/etc/php-fpm.conf

开启pid固定参数文件,以便下面的启动参数有效 pid = /usr/local/php/var/run/php-fpm.pid
开启错误日志文件 error_log = log/php-fpm.log

启动参数

测试php-fpm配置命令 /usr/local/php/sbin/php-fpm -t
测试php-fpm配置,配合php.ini /usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini -y /usr/local/php/etc/php-fpm.conf -t
启动php-fpm /usr/local/php/sbin/php-fpm
启动php-fpm,配合php.ini /usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini -y /usr/local/php/etc/php-fpm.conf
关闭php-fpm kill -INT `cat /usr/local/php/var/run/php-fpm.pid`
重启php-fpm kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`

修改nginx-server的fastcgi部分,参考下面常见配置

      location ~ \.php$ {

      root html;

      fastcgi_pass 127.0.0.1:9000;

      fastcgi_index index.php;

      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

      include fastcgi_params;

    }

支持pathinfo的配置

      location ~ \.php {

      root html;

      fastcgi_pass 127.0.0.1:9000;

      fastcgi_index index.php;

      fastcgi_split_path_info ^(.+\.php)(.*)$; #增加这一句

      fastcgi_param PATH_INFO $fastcgi_path_info; #增加这一句

      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

      include fastcgi_params;

    }

创建php.ini在编译时指定的配置项文件夹内,例如这次的安装配置路径是在/usr/local/php/etc/下,重启后会生效

vi /usr/local/php/etc/php.ini

常用php.ini配置项解析

开启PDO,否则使用不到PDO对象 extension = pdo.so
开启MySQL PDO驱动,PDO默认只支持SQLite extension = pdo_mysql.so
开启MySQLi extension = mysqli.so
开启MySQL extension = mysql.so
设置时区 date.timezone = 'Asia/Shanghai'
设置MySQL socket文件位置,否则不能通过uinx socket来连接数据库,例如利用主机名字localhost将会失效 mysql.default_socket = /var/lib/mysql/mysql.sock
设置PDO MySQL socket文件位置,否则不能通过uinx socket来连接数据库,例如利用主机名字localhost将会失效 pdo_mysql.default_socket = /var/lib/mysql/mysql.sock
设置MySQLi socket文件位置,否则不能通过uinx socket来连接数据库,例如利用主机名字localhost将会失效 mysqli.default_socket = /var/lib/mysql/mysql.sock

创建开机启动项

centOS7之后的启动方式

CentOS 7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,像需要开机不登陆就能运行的程序,还是存在系统服务里吧,即:/usr/lib/systemd/system目录下

每一个服务以.service结尾,一般会分为3部分:[Unit]、[Service]和[Install]

这里创建一个mysql.service服务

vi /usr/lib/systemd/system/php-fpm.service
 编辑php-fpm.service [Unit]
Description=php-fpm
After=network.target
 
[Service]
Type=forking
PIDFile=/usr/local/php/var/run/php-fpm.pid
ExecStart=/usr/local/php/sbin/php-fpm
ExecReload=kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`
ExecStop=kill -INT `cat /usr/local/php/var/run/php-fpm.pid`
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target
开启开机加载 systemctl enable php-fpm.service

[Linux]非外网环境下配置lnmp心得的更多相关文章

  1. linux 无外网情况下安装 mysql

    由于工作需要,需要在一台装有 CentOS 系统的测试服务器上安装 MySQL ,由于该服务器上存有其他比较重要的测试数据,所以不能连接外网.由于之前安装 MySQL 一直都是使用 yum 命令一键搞 ...

  2. 阿里云ECS服务器Linux环境下配置php服务器(二)--phpMyAdmin篇

    上一篇讲了PHP服务器的基本配置,我们安装了apache,php,还有MySQL,最后还跑通了一个非常简单的php页面,有兴趣的朋友可以看我的这篇博客: 阿里云ECS服务器Linux环境下配置php服 ...

  3. Hyper-V 配置虚拟机内网及外网环境

    一.为Hyper-V虚拟机准备内外网环境 1.内网环境——虚拟机与虚拟机及主机可以互通

  4. 记录一下自己总结出来的,在内网环境下使用maven打包的各种方法,包括各种常用的打包方式(一)

    (一)内外网代理仓库搭建 想了一下,先用这个MAVEN安装部署的说明随笔,作为自己的第一篇技术帖,往后会陆陆续续将自己研究的心得发出来,留下脚印.希望有大神可以指点 一 .文章主要解决问题说明 1) ...

  5. 【经验之谈】Windows环境下配置WordPress

    前言 wordpress全球著名的开放博客平台,拥有成千上万个各式插件和不计其数的主题模板样式,使用php和mysql搭建,下面说下载windows环境下配置wordpress,经验之谈. 安装 关于 ...

  6. macOS Sierra Version 10.12.6 环境下Tomcat的下载与安装以及InterlliJ IDEA 2017.2 环境下配置Tomcat 与创建Web项目

    一.Tomcat的下载与安装 1.官网(http://tomcat.apache.org/)下载Tomcat 9.0 Core:zip包: 2.解压到指定的文件夹即可安装完成: 3.测试是否安装成功 ...

  7. 断网环境下利用pip安装Python离线安装包

    这几天搞Windows离线断网环境下安装Python包,配置环境,各种坑!做个记录,供以后查询吧. # 生产环境 windows 7 # python 2.7.9 # pip 1.5.2 友情提示:当 ...

  8. Ubuntu环境下配置GCC

    Ubuntu网络环境下安装GCC及其头文件步骤: 1.Ubuntu环境下配置GCC 刚装好的GCC什么都不能编译,因为没有一些必须的头文件,所以要安装build-essential,安装了这个包会安装 ...

  9. 在Ubuntu环境下配置NIMH MEG Core Facility之CTF Tools

    在Ubuntu环境下配置NIMH MEG Core Facility之CTF Tools 网站有提示: The install script won't work, but you can copy ...

随机推荐

  1. C# volatile关键字

    ; public int GetAge() { return Age; } 如上例子,调用GetAge()得到的是“主”内存区域的Age数值.用volatile修饰后的变量不允许有不同于“主”内存区域 ...

  2. 在ASP.MVC中使用Ajax

    Asp.net MVC 抛弃了Asp.net WebForm那种高度封装的控件,让我们跟底层的HTML有了更多的亲近.可以更自由.更灵活的去控制HTML的结构.样式和行为.Asp.net MVC可以更 ...

  3. Java7的异常处理新特性-addSuppressed()方法等

    开发人员对异常处理的try-catch-finally语句块都比较熟悉.如果在try语句块中抛出了异常,在控制权转移到调用栈上一层代码之前,finally语句块中的语句也会执行.但是finally语句 ...

  4. iOS- storyboard this class is not key value coding-compliant for the key xxx

    如图: 在使用storyboard的时候出现此问题,主要是因为给storybroad中的view拖线的时候,有时不小心线拖错了,或者再次拖线导致代码中控件的名字与之前拖线时定义的名字不同导致的. 解决 ...

  5. 一款符合当前主流审美的Swing外观(Look and Feel)_测试版发布

    [前言] 本文将展示的是一款J2SE平台Swing外观(Look and Feel)实现,目前给出的演示jar包仅供测试之用,主体工作已经完成,余下是兼容性测试和调整,附件中的演示jar包推荐运行于j ...

  6. Jquery实现滚动显示欢迎字幕效果

    Jquery控制滚动显示欢迎字幕: 参考代码: <!DOCTYPE html> <html> <head> <title>Colin Marquee W ...

  7. 基于iSCSI的SQL Server 2012群集测试(五)--镜像,作业,复制分发测试

    7.1.镜像测试 群集可以正常镜像到非群集环境,本次测试采用,无见证服务器的sql server验证的镜像连接,不同的是群集环境的镜像IP是采用SQL Server虚拟IP进行通信连接. 群集服务器: ...

  8. SQL Server数据库邮件配置

    一.数据库邮件介绍 数据库邮件是从SQL Server数据库引擎中发送电子邮件的企业解决方案,通过使用数据库邮件,数据库应用程序可以向用户发送电子邮件.邮件中可以包含查询结果,还可以包含来自网络中任何 ...

  9. java练手 公约数和公倍数

    Problem D 公约数和公倍数 时间限制:1000 ms  |  内存限制:65535 KB   描述 小明被一个问题给难住了,现在需要你帮帮忙.问题是:给出两个正整数,求出它们的最大公约数和最小 ...

  10. C#之规格说明书

    1. Statement My Note Problem Statement Version 1.0   Revision History Date Issue Description Author ...