[Linux]非外网环境下配置lnmp心得
2016-03-12 01:07
471 查看
1.安装gcc编译器
基本所有编译安装包都需要gcc编译器,而且编译安装gcc也需要一个编译器,这是一个悖论。所以,这里只能寻求rpm包安装。但是rpm包需要匹配特定的操作系统内核,所以没有一个通用的包,只能花心思去寻找了
以CentOS7.1.1503 为例,在http://vault.centos.org/中找到适合的版本对应的gcc-rpm
下载完成后依次安装
查看版本,安装成功后会显示环境变量信息
至此,gcc编译器安装完毕.
2.安装perl
在perl官网https://www.perl.org下载gz包
执行编译安装
完成安装后查看版本会显示环境变量
至此,Perl安装完毕.
3.安装ncurses-devel rpm.
至此,ok.
4.安装cmake
至此,ok.
5.安装mysql
下载mysql和boost_1_59_0.tar.gz
解压目录
创建账号
编译
编译参数细节
注:若从新配置需要删除CMakeCache.txt文件.
make,编译所需内存最好大于2GB,否则可能会出现编译器内存不足自动结束进程
创建数据库文件夹
复制配置模板到/etc,MySQL默认加载配置文件路径是/etc/my.cnf,如需自定义配置文件路径,可以在初始化数据库的时候在mysqld命令加上--defaults-file=<配置项路径>
初始化数据库,5.7前后版本在初始化数据库方面有差异,因为5.7之后官方建议用mysqld来代替mysql_install_db,详情请参见官方文档
配置启动项
修改root密码
其他命令
6.安装pcre-devel
ok.
7.安装zlib-devel
ok.
8.安装openssl
9.安装nginx,下载gz包
创建nginx用户和组
解压,编译
配置
配置结束后会列出配置摘要,按照上面安装的组件和配置参数,摘要应该是这样的
编译,安装
编辑pid文件
启动/重启/停止服务命令
创建开机启动项
添加防火墙允许http服务
10.安装libxml2-devel
11.安装bzip2 bzip2-devel
12.安装curl-devel
13.安装readline-devel
14.安装freetype freetype-devel
15.安装libjpeg-turbo libpng libjpeg-turbo-devel libpng-devel
16.安装openldap openldap-devel
17.安装libmcrypt,下载gz包
18.安装PHP-FPM,下载gz包
为了编译程序能够找到相关依赖类库,必须编辑一下类库识别路径
解压
配置,可参考官方文档相关配置项说明:http://php.net/manual/zh/configure.about.php
编译,安装
安装成功后,如果没有自定义过目录,常用配置用到的默认目录如下
加载配置项
启动参数
修改nginx-server的fastcgi部分,参考下面常见配置
支持pathinfo的配置
创建php.ini在编译时指定的配置项文件夹内,例如这次的安装配置路径是在/usr/local/php/etc/下,重启后会生效
常用php.ini配置项解析
创建开机启动项
基本所有编译安装包都需要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) |
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. |
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 |
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 |
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 |
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将下载谷歌所使用的测试套件运行单元测试。 |
rm <安装包目录>/CMakeCache.txt |
make |
make install |
mkdir /data |
mkdir /data/mysqldb |
chown -R mysql:mysql /data/mysqldb |
chown -R mysql:mysql /usr/local/mysql |
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf |
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 |
新设密码 | /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 |
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 |
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 |
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 |
nginx-1.9.9.tar.gz | http://nginx.org/download/nginx-1.9.9.tar.gz |
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文件 | 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 |
firewall-cmd --permanent --zone=public --add-service=http |
systemctl restart firewalld |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
./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` |
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; } |
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; } |
vi /usr/local/php/etc/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 |
相关文章推荐
- 超详细Centos6.5文本模式安装步骤
- 在Linux CentOS 6.5上安装python2.7.9
- 关于阿里云centos 2.6下手机表情输入后无法保存到mysql数据库的问题调研及mysql版本从5.1升级到5.7的全过程纪要
- Linux内核分析:实验三--内核启动过程分析
- linux中的signal函数
- linux等待队列wait_queue_head_t和wait_queue_t
- Linux平台weblogic集群安装(三)
- 如何判断 Linux 服务器是否被入侵?
- VmWare虚拟机下,桥接、NAT、Host-Only三种连接方式的区别与ip设置
- 跟踪分析Linux内核的启动过程
- Linux 学习日记 4: 文件打包与解压缩
- Linux 学习日记 5: 文件系统操作与磁盘管理
- Iptables(一):Linux防火墙基础与iptables命令
- VMware 安装 vmware tools
- linux设备驱动中的并发控制
- Linux 字符设备驱动开发基础(六)—— VFS 虚拟文件系统解析
- Linux 学习笔记 2016.03.11
- Linux 字符设备驱动开发基础(五)—— ioremap() 函数解析
- Linux平台weblogic集群安装(二)
- 跟踪分析Linux内核的启动过程