博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
02-Nginx+MySQL+PHP7
阅读量:6167 次
发布时间:2019-06-21

本文共 6287 字,大约阅读时间需要 20 分钟。

【安装Nginx】#先安装如下包yum install gcc gcc-c++ kernel-develyum -y install pcre-devel openssl openssl-devel#解压nginx-1.12.0.tar.gz  然后进入目录./configure --prefix=/usr/local/nginx --with-http_stub_status_modulemake && make install【安装MySQL】#先安装如下包:yum -y install make gcc-c++ cmake bison-devel  ncurses-devel#解压mysql-5.6.14.tar.gz 然后进入目录cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_cimake && make install【安装PHP】#先安装如下包:yum install -y gcc gcc-c++  make zlib zlib-devel pcre pcre-devel  libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers#解压php-7.1.6.tar.gz 然后进入目录./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php --enable-mbstring --enable-ftp --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-pear --enable-sockets --with-freetype-dir=/usr --enable-gd-native-ttf --with-zlib --with-libxml-dir=/usr --with-xmlrpc --enable-zip --enable-fpm --enable-xml --enable-sockets --with-gd --with-zlib --with-iconv --enable-zip --with-freetype-dir=/usr/lib/ --enable-soap --enable-pcntl --enable-cli --with-curlmake && make install

 

说明:Nginx、MySQL、PHP7 的编译安装命令参考安装包内的command.txt,所有的操作需要在root用户下执行。
 
【编译安装Nginx之后】
  
$ /usr/local/server/nginx/sbin/nginx              #启动Nginx$ /usr/local/server/nginx/sbin/nginx -s stop      #断开Nginx$ /usr/local/server/nginx/sbin/nginx -s reload    #重启Nginx$ ps -ef | grep nginx  或者 ps -A | grep -i nginx #查看是否成功启动nginx

 

[配置Nginx支持PHP]
进入 /usr/local/nginx/conf,将nginx.conf 复制一份备用,然后修改 nginx.conf:
(1)index  index.html index.htm; 改为:index  index.html index.htm index.php;  (2)#location ~ \.php$ {        #    root           html;        #    fastcgi_pass   127.0.0.1:9000;        #    fastcgi_index  index.php;        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;        #    include        fastcgi_params;#}改为: 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;}
 
[开启Nginx的目录文件列表功能]
http {include       mime.types;default_type  application/octet-stream;    #------ 开启Nginx的目录文件列表功能  -----#    autoindex on; #自动显示目录    autoindex_exact_size off; #人性化方式显示文件大小否则以byte显示    autoindex_localtime on;   #按服务器时间显示,否则以gmt时间显示    ...}

 

[配置虚拟主机]
server {listen 80;    server_name centos.a.com;    root /usr/local/nginx/html/test;    charset utf-8;  # access_log /logs/admin_access.log;  # error_log  /logs/admin_error.log;    index index.php index.html;   location ~ \.php$ {    fastcgi_pass   127.0.0.1:9000;    fastcgi_index  index.php;    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;    include        fastcgi_params;  }} 然后在 /etc/hosts 中添加: 127.0.0.1  centos.a.com

 

 
 
[配置nginx 支持ThinkPHP] ------未验证
在 nginx 下面用 ThinkPHP 做开发,每次输入类似 /test/tp/index.php/Index/index 的 URI ,提示没有找到该页
原来 nginx 原来不支持 pathinfo 模式,需要自己配置。在配置文件的 server 块中,加入以下内容:
location /qgzs_apiv2/app/ {     index index.php;     if (!-e $request_filename) {         rewrite ^/qgzs_apiv2/app/(.*)$/qgzs_apiv2/app/index.php/$1 last;         break;    } } location ~ .+\.php($|/) {     set $script $uri;     set $path_info "/";     if ($uri ~ "^(.+\.php)(/.+)") {         set $script     $1;         set $path_info  $2;     }          fastcgi_pass 127.0.0.1:9000;     fastcgi_index index.php?IF_REWRITE=1;     include fastcgi_params;     fastcgi_param PATH_INFO $path_info;     fastcgi_param SCRIPT_FILENAME $document_root/$script;     fastcgi_param SCRIPT_NAME $script; }

 

其中 /qgzs_apiv2/app/ 是项目的路径,保存配置之后,重启 nginx ,配置成功。
直接支持类似于 /Index.html 这样的伪静态模式。
 
 
 
【编译安装MySQL之后】
编译安装大约需要30分钟,之后作如下配置:
 
[设置权限]
使用下面的命令查看是否有mysql用户及用户组
$ cat /etc/passwd    #查看用户列表
$ cat /etc/group     #查看用户组列表
 
如果没有就创建
$ groupadd mysql
$ useradd -g mysql mysql
 
修改/usr/local/mysql权限
$ chown -R mysql:mysql /usr/local/mysql
 
[初始化配置]
进入安装路径, 执行初始化配置脚本,创建系统自带的数据库和表:
$ cd /usr/local/mysql
$ scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
 
如果安装失败,若出现Can't locate Data/Dumper.pm in @INC (@INC contains: ... ,解决如下:
$ yum install 'perl(Data::Dumper)'
 
注:对/etc/my.cnf重命名为/etc/my.cnf.bak,然后拷贝服务脚本到init.d目录,并设置开机启动:
$ cp support-files/mysql.server /etc/init.d/mysql
$ chkconfig mysql on
$ service mysql start    #启动MySQL
 
[配置用户]
需要先设置PATH,要不不能直接调用mysql.修改/etc/profile文件,在文件末尾添加:
PATH=/usr/local/mysql/bin:$PATH
export PATH
 
关闭文件,运行下面的命令,让配置立即生效:
$ source /etc/profile
 
现在,在终端内直接输入mysql即可进入:
$ mysql -uroot
mysql> SET PASSWORD = PASSWORD('123456');
 
若要设置root用户可以远程访问,执行
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'172.16.%' IDENTIFIED BY '123456' WITH GRANT OPTION;
 
[配置防火墙]
防火墙的3306端口默认没有开启,若要远程访问,需要开启这个端口。打开/etc/sysconfig/iptables:
在“-A INPUT –m state --state NEW –m tcp –p –dport 22 –j ACCEPT”,下添加:
-A INPUT -m state --state NEW -m tcp -p -dport 3306 -j ACCEPT
然后保存,并关闭该文件,在终端内运行下面的命令,刷新防火墙配置:
$ service iptables restart
 
 OK,一切配置完毕,然后可以访问MySQL了!
 
 
 
【编译安装PHP7之后】
编译安装大约需要20分钟,之后在之前编译的源码包中,找到 php.ini-production:
$ cp php.ini-production /usr/local/php/php.ini
[设置让PHP错误信息打印在页面上] 
$ vim /usr/local/php/php.ini 
display_errors = On
 
[复制启动脚本]
$ cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
$ chmod +x /etc/init.d/php-fpm
 
[修改php-fpm配置文件]
$ cd /usr/local/php/etc$ cp php-fpm.conf.default php-fpm.conf然后,vim php-fpm.conf 编辑配置文件:① 去掉 pid = run/php-fpm.pid 前面的分号② 修改user和group的用户为当前用户③  pm.max_children = 50    pm.start_servers = 20    pm.min_spare_servers = 5    pm.max_spare_servers = 35
然后保存退出。
 
[启动php-fpm]
$ /etc/init.d/php-fpm start  #php-fpm启动命令
$ /etc/init.d/php-fpm stop        #php-fpm退出命令
$ ps -ef | grep php 或者 ps -A | grep -i php  #查看是否已经成功启动PHP
 
 
 
 
 
 
 
 
 
 
 
 

 

转载于:https://www.cnblogs.com/rxbook/p/7137375.html

你可能感兴趣的文章
类似OutLook布局的开源控件XPanderControls
查看>>
Web前端工程师成长之路——知识汇总
查看>>
[2018-9-4T2]探索黑暗dark
查看>>
【学术信息】中科院2019年学术期刊分区-综合性期刊
查看>>
AC自动机模板
查看>>
手机缺失sqlite3时操作数据库的多种解决方案 ----adb命令科普
查看>>
python2.7_1.3_获取远程设备的IP地址
查看>>
数据分析MySQL阶段测验简答题
查看>>
如何使用Xcode进行高保真原型设计?
查看>>
[转载]Java抽象类和接口的学习
查看>>
hdu2087(剪花布条)
查看>>
Maven快速入门
查看>>
AC自动机
查看>>
python多线程抓取代理服务器
查看>>
STextComboBox & SComboBox
查看>>
「面试题」如何实现一个圣杯布局?
查看>>
Ruby的require相关知识
查看>>
转:线程引入 pthread_self 解决不同平台的问题!
查看>>
核心动画
查看>>
执行yiic webapp命令时报错:php.exe不是内部或外部命令,也不是可运行的程序
查看>>