用过了apache就想着用用nginx,网上教程其实不少,可是受服务器版本等限制,每一个人遇到的问题也不同,先记录下个人php
一.安装依赖html
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel //一键安装四个依赖
二.下载nginx的tar包mysql
//建立一个文件夹 cd /usr/local mkdir nginx cd nginx //下载tar包 没有wget命令,能够yum -y install wget进行安装 wget http://nginx.org/download/nginx-1.13.7.tar.gz //解压 tar -xvf nginx-1.13.7.tar.gz
三.安装nginxlinux
//进入nginx目录 cd /usr/local/nginx/nginx-1.13.7 //执行命令 ./configure //执行make命令,,执行后会告诉你配置文件(根目录/conf/nginx.conf)和日志文件位置(根目录/logs/error.log) make //执行make install命令 make install
四.启动nginx前nginx
防火墙开通8090端口,用于nginx;且服务器控制台安全组也要开通好:firewall-cmd --zone=public --add-port=8090/tcp --permanentc++
sudo vim /usr/local/nginx/conf/nginx.confgit
由于可能apeache占用80端口,apeache端口尽可能不要修改,咱们选择修改nginx端口。linux 修改路径/usr/local/nginx/conf/nginx.conf,Windows 下 安装目录\conf\nginx.conf。修改端口为8090,localhost修改成你服务器ip地址。github
检查配置是否正确:sbin目录下:./nginx -tredis
五.启动nginxsql
启动代码格式:nginx安装目录地址 -c nginx配置文件地址;如:[root@LinuxServer sbin]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
六.验证,若没法打开关闭防火墙看看是否为防火墙问题
Nginx虚拟域名配置及测试验证
//编辑nginx.conf sudo vim /usr/local/nginx/conf/nginx.conf //增长行,,,在http{}的最下面 include vhost/*.conf //保存退出 //在/usr/local/nginx/conf目录新建vhost文件夹 mkdir vhost //建立每一个域名的配置 sudo vim jimisun.com.conf //节点中增长入响应的配置 端口转发 或者访问文件系统
附一下vhost.conf的内容
server { listen 8090; server_name ip地址; location / { index index.html index.htm index.php; if (!-e $request_filename){ rewrite ^/(.*) /index.php last; } #autoindex on; } 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; } }
再附一下我本地使用phpstudy的域名站点配置(已经配置好了php7)
server { listen 80; server_name www.local-cps.cn local-cps.cn; root "项目的起始包含index.php文件的文件夹全路径"; location / { index index.html index.htm index.php; #autoindex on; } location ~ \.php(.*)$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_split_path_info ^((?U).+\.php)(/?.+)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; include fastcgi_params; } }
Nginx重启:
方法一:进入nginx可执行目录sbin下,输入命令./nginx -s reload 便可。(./nginx -t检查配置是否有误)
方法二:查找当前nginx进程号,而后输入命令:kill -HUP 进程号 实现重启nginx服务
查看Nginx运行情况:有结果为正在运行,反之没有运行。
ps -a | grep nginx
Nginx启动:
进入nginx可执行目录sbin下,输入命令./nginx 便可。
chkconfig:检查系统的各类服务。
设置Nginx开机自启动:
vi /etc/rc.local
添加/usr/local/nginx/sbin/nginx便可。
注意设置执行权限哦。chmod 755 rc.local
PHP7(7.2.12):
一.下载依赖
目录/usr/local下新建php文件夹,并下载php软件包 wget http://am1.php.net/get/php-7.2.12.tar.bz2/from/this/mirror //注意,当心下载下来的是页面,不然无法解压缩,file 文件名 命令查看 安装tar及bzip2 yum install -y tar yum -y install bzip2 解压php压缩包:ps:若wget后的是mirror文件,则tar xjvf mirror便可
tar xjvf php-7.2.12.tar.bz2 安装php须要的扩展: yum install libxml2 libxml2-devel openssl openssl-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libmcrypt libmcrypt-devel -y
二.开始安装
//进入php-7.2.12目录 cd /usr/local/php/php-7.2.12 //执行命令,prefix安装到指定位置 ./configure --prefix=/usr/local/php720 --with-mysqli --with-pdo-mysql --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir --enable-simplexml --enable-xml --disable-rpath --enable-bcmath --enable-soap --enable-zip --with-curl --enable-fpm --with-fpm-user=nobody --with-fpm-group=nobody --enable-mbstring --enable-sockets --with-gd --with-openssl --with-mhash --enable-opcache --disable-fileinfo //编译安装: make make install
配置nginx.conf支持php:
打开nginx配置文件(/usr/local/nginx/conf/nginx.conf),找到localtion模块,在index后面添加index.php,使nginx识别php文件;
启动php-fpm:
将php-fpm.conf.default复制为php-fpm.conf
cd /usr/local/php720/etc
cp php-fpm.conf.default php-fpm.conf
而后启动php-fpm
/usr/local/php720/sbin/php-fpm
若是启动报错(以下图):
解决方法:进入到 /usr/local/php720/etc/php-fmp.d下的www.conf.default 复制为www.conf,而后启动php-fpm;
进入文件夹(若是进不去,就一步步的cd进去; 若是没有这个文件就本身建立个php-fpm.d文件夹,再进到网址下载www.conf文件:https://pan.baidu.com/s/1o8mRYkU)
cd /usr/local/php720/etc/php-fpm.d
cp www.conf.default www.conf
解决后,先把php-fpm进程清除
pkill php-fpm
再启动php-fpm
/usr/local/php720/sbin/php-fpm
最后在/usr/local/nginx/html下新建文件index.php,输出phpinfo();
vi index.php
运行ip,以下
配置php-fpm自启动:
vi /etc/rc.local
添加/usr/local/php7012/sbin/php-fpm便可。
注意设置执行权限哦。chmod 755 rc.local
安装后若发现php -v 和phpinfo()下的版本不一致,则是由于系统和nginx全部的php.ini目录不一致,具体解决:
https://blog.csdn.net/feiwutudou/article/details/80049567
centos6.6下安装mysql(5.7):
//下载 mysql的repo # wget https://dev.mysql.com/get/mysql57-community-release-el6-11.noarch.rpm //安装mysql源安装包 # rpm -ivh mysql57-community-release-el6-11.noarch.rpm //安装Mysql yum -y install mysql-community-server //若报错:Error downloading packages.....No more mirrors to try。缘由是下载包失败,清理缓存yum clean all,再yum list,再执行yum -y install mysql-community-server,多试几回,若仍是不行,error后再从新执行yum -y install mysql-community-server(我最后就这样搞好的)。ps:由于镜像下载确实慢 //启动Mysql服务 service mysqld start //设置开机启动 [root@localhost ~]# service enable mysqld [root@localhost ~]# service daemon-reload [root@localhost ~]# chkconfig --list
以后和centos7步骤同样了。之因此采用el6而不是el7,是由于centos的版本不一样,gcc太低,因此致使报错:Requires: libstdc++.so.6(GLIBCXX_3.4.15)
centos7下安装mysql(5.7):
https://blog.csdn.net/chenjiayi_yun/article/details/16920967
一.下载依赖
//CentOS7的yum源中默认是没有mysql的。因此要先下载mysql的repo源。 //下载 mysql的repo # wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm //安装mysql源安装包 # rpm -ivh mysql57-community-release-el7-11.noarch.rpm //安装这个包后,会得到两个mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo。
//安装Mysql yum -y install mysql-community-server //启动Mysql服务 systemctl start mysqld //设置开机启动 [root@localhost ~]# systemctl enable mysqld [root@localhost ~]# systemctl daemon-reload [root@localhost ~]# chkconfig --list
修改mysql root本地登陆密码
mysql安装完成以后,在/var/log/mysqld.log文件中给root生成了一个临时的默认密码。[root@localhost ~]# more /var/log/mysqld.log,也可以使用cat查看
临时密码:in1N=ERmABRb
登录mysql并修改密码:mysql -u root -pin1N=ERmABRb,报错的话可使用mysql -u root -p即不适用明文登入
//登入 $ mysql -u root -pin1N=ERmABRb //修改密码为Aaa2019.cn mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY 'Aaa2019.cn'; Query OK, 0 rows affected (0.00 sec) //注意, mysql5.7默认密码策略要求密码必须是大小写字母数字特殊字母的组合,至少8位
设置容许远程登陆
//Mysql默认不容许远程登陆,咱们须要设置下,而且防火墙开放3306端口; mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Aaa2019.cn' WITH GRANT OPTION; //返回 Query OK, 0 rows affected, 1 warning (0.01 sec) //退出 mysql> exit; //设置端口 [root@localhost ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent //返回 success //重启防火墙 [root@localhost ~]# firewall-cmd --reload
若是是阿里云服务器:须设置安全组配置,开放3306端口,容许远程链接
赋予文件权限chmod -R 777 *
查看配置
# cat /etc/my.cnf
在这里错误日志的位置都有。
附mysql7.3.23的安装:
一.下载依赖
下载mysql:https://dev.mysql.com/downloads/cluster/7.3.html
wget https://dev.mysql.com/get/Downloads/MySQL-Cluster-7.3/mysql-cluster-gpl-7.3.23-linux-glibc2.12-x86_64.tar.gz //解压: tar -xvzf mysql-cluster-gpl-7.3.23-linux-glibc2.12-x86_64.tar.gz //重命名: mv mysql-cluster-gpl-7.3.23-linux-glibc2.12-x86_64 mysql-7.3.23 //复制命名后的目录 cp -r mysql-7.3.23 /usr/local/mysql7323 //添加用户组和用户: cd /usr/local/mysql7323 #添加用户组 groupadd mysql //#添加用户mysql 到用户组mysql useradd -g mysql mysql //建立mysql数据目录,新目录不存在则建立: mkdir ./data/mysql 或 mkdir /usr/local/mysql7323/data/mysql //mysql安装根目录下修改目录权限: chown -R mysql:mysql ./
初始化数据库:(注意路径)
./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql7323 --datadir=/usr/local/mysql7323/data
问题报错:提示没有安装perl,缘由:缺乏perl模块中的Data::Dumper
yum -y install autoconf //安装autoconf库(此包安装时会安装Data:Dumper模块)
再次执行初始化报错:缘由:缺乏libaio库文件
解决方法:yum install libaio* -y
再次执行初始化ok
//修改权限为root权限: chown -R root:root . chown -R mysql:mysql data //添加启动服务: cp support-files/mysql.server /etc/init.d/mysql #修改启动脚本 vi /etc/init.d/mysqld #修改项: basedir=/usr/local/mysql/ datadir=/usr/local/mysql/data/mysql
启动mysql服务:
service mysqld start
报错,提示无权限
解决方法:chmod a+wrx /etc/init.d/mysqld
redis扩展:
//先下载phpredis-develop cd /tmp wget https://codeload.github.com/phpredis/phpredis/zip/develop //安装unzip、zip解压工具 yum -y install unzip zip //解压 unzip develop //解压后会多了个phpredis-develop的目录。进入目录 cd phpredis-develop //安装phpize模块 yum -y install php-devel //执行phpize sudo phpize //查找php-config路径 find / -name php-config //例如:个人是:/usr/local/php720/bin/php-config //配置环境 ./configure --with-php-config=/usr/local/php720/bin/php-config //编译安装 sudo make && make install //成功后会告诉你生成的redis.so扩展文件在哪一个目录 //Installing shared extensions: /usr/local/php720/lib/php/extensions/no-debug-non-zts-20170718/
配置php的redis:
vim /usr/local/php720/lib/php.ini extension= /usr/local/php720/lib/php/extensions/no-debug-non-zts-20170718/redis.so //ok //解决后,先把php-fpm进程清除 pkill php-fpm //再启动php-fpm /usr/local/php720/sbin/php-fpm //防火墙端口: firewall-cmd --zone=public --add-port=6379/tcp --permanent
注意,linux下php7中若找不到php配置文件php.ini
解决方法:首先须要说明的是,若是你的php是编译安装的,那么默认是没有php.ini的,你必须自行去源码包里边拷贝。运行phpinfo()命令能够看到php指定的配置文件路径,把配置文件放到这个路径中便可。
安装redis服务:
坑1.
另附一下之前使用tp3.2框架时的坑
解决方法:
if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=$1 last; break; }
坑2.
若报‘403 Forbidden’,则是由于nginx.conf没有找到指定文件,文件以下图
若要开启nginx目录浏览功能,只需将autoindex on前面的#去掉便可
整体来讲,nginx确实是首选服务器,抗并发要强于apache(apache是阻塞的,nginx是异步非阻塞);apache模块比较多,稳定,可是配置复杂。相对nginx就简洁,bug比较多了;支持负载均衡;并发量在50000左右;固然还有其余优点和劣势,先这样吧,之后再继续研究
fileInfo扩展:
find / -name phpize//找到php安装目录下的phpize的路径 //在/usr/local/php/php-7.2.12/ext/fileinfo源文件下执行如下操做: /usr/local/php-install/bin/phpize ./configure --with-php-config=/usr/local/php-install/bin/php-config//为php安装路径 make && make install vim /usr/local/php-install/lib/php.ini 修改extension=fileInfo前面的分号去掉,保存后重启php-fpm便可