linux下php+nginx+mysql网站开发环境搭建
2017-10-19 16:29
771 查看
php安装
(最好先安装好了mysql)
下载解压文件后
./configure –help可以查看英文解释,configure部分参数中文解释如下,根据自己的情况填写configure参数
nginx安装
下载解压文件后
nginx配置解释如下
mysql安装(难,详解)
一、Mysql 各个版本区别:
1、MySQL Community Server 社区版本,开源免费,但不提供官方技术支持。
2、MySQL Enterprise Edition 企业版本,需付费,可以试用30天。
3、MySQL Cluster 集群版,开源免费。可将几个MySQL Server封装成一个Server。
4、MySQL Cluster CGE 高级集群版,需付费。
5、MySQL Workbench(GUI TOOL)一款专为MySQL设计的ER/数据库建模工具。它是著名的数据库设计工具DBDesigner4的继任者。MySQL Workbench又分为两个版本,分别是社区版(MySQL Workbench OSS)、商用版(MySQL Workbench SE)。
MySQL Community Server 是开源免费的,这也是我们通常用的MySQL的版本。根据不同的操作系统平台细分为多个版本。
二、
1、下载,我的是Ubuntu64位系统,因此选择
2、将下载下来的文件复制到/usr/local
3、解压文件
4、改名文件夹xxxxxxxx为mysql
5、mysql默认不能以root用户启动,因此 新建mysql用户和组
6、改变目录所属
7、配置参数
生成的临时密码
8、配置mysql.server
添加内容到mysql.server (shell脚本文件)
9、启动mysql服务端
10、启动mysql客服端链接mysql服务端
提示输入密码,填写上面生成的临时密码x.md1LfcsNPv
11、进去后设置正式密码
启动 重启 停止方法
php启动重启停止
启动php-fpm:
/usr/local/php/sbin/php-fpm
php 5.3.3 以后的php-fpm 不再支持 php-fpm 以前具有的 /usr/local/php/sbin/php-fpm (start|stop|reload)等命令,所以不要再看这种老掉牙的命令了,需要使用信号控制:
master进程可以理解以下信号
INT, TERM 立刻终止
QUIT 平滑终止
USR1 重新打开日志文件
USR2 平滑重载所有worker进程并重新载入配置和二进制模块
一个简单直接的重启方法:
先查看php-fpm的master进程号
重启php-fpm:
kill -USR2 42891
OK了。
上面方案一般是没有生成php-fpm.pid文件时使用,如果要生成php-fpm.pid,使用下面这种方案:
上面master进程可以看到,matster使用的是/usr/local/php/etc/php-fpm.conf这个配置文件,cat /usr/local/php/etc/php-fpm.conf 发现
pid文件路径应该位于/usr/local/php/var/run/php-fpm.pid,由于注释掉,所以没有生成,我们把注释去除,再kill -USR2 42891 重启php-fpm,便会生成pid文件,下次就可以使用以下命令重启,关闭php-fpm了:
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’
(最好先安装好了mysql)
下载解压文件后
#指定安装路径 开启安装fpm 指定mysql路径 ./configure --prefix=/usr/local/php --enable-fpm --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-pdo --with-pdo-mysql --with-gd #编译 sudo make #讲编译好的文件安装到指定的地方 sudo make install #复制安装包下配置文件到/usr/local/php/lib目录下 cp 你解压安装包后文件下的php.ini-development /usr/local/php/lib/php.ini
./configure –help可以查看英文解释,configure部分参数中文解释如下,根据自己的情况填写configure参数
# 指定 php 安装目录 --prefix=/usr/local/php # 指定php.ini位置 --with-config-file-path=/usr/local/php/etc # mysql安装目录,对mysql的支持 --with-mysql=/usr/local/mysql mysqli扩展技术不仅可以调用MySQL的存储过程、处理MySQL事务,而且还可以使访问数据库工作变得更加稳定。 --with-mysqli=/usr/local/mysql/bin/mysql_config 整合 apache,apxs功能是使用mod_so中的LoadModule指令,加载指定模块到 apache,要求 apache 要打开SO模块 --with-apxs2=/usr/local/apache/bin/apxs # 选项指令 --with-iconv-dir 用于 PHP 编译时指定 iconv 在系统里的路径,否则会扫描默认路径。 --with-iconv-dir=/usr/local --with-freetype-dir 打开对freetype字体库的支持 --with-jpeg-dir 打开对jpeg图片的支持 --with-png-dir 打开对png图片的支持 --with-zlib-dir 打开zlib库的支持,用于http压缩传输 --with-libxml-dir 打开libxml2库的支持 --disable-rpath 关闭额外的运行库文件 --enable-bcmath 打开图片大小调整,用到zabbix监控的时候用到了这个模块 --enable-shmop --enable-sysvsem 这样就使得你的PHP系统可以处理相关的IPC函数了。 --enable-inline-optimization 优化线程 --with-curl 打开curl浏览工具的支持 --with-curlwrappers 运用curl工具打开url流 --enable-mbregex --enable-fpm 打上PHP-fpm 补丁后才有这个参数,CGI方式安装的启动程序 --enable-mbstring 多字节,字符串的支持 --with-mcrypt mcrypt算法扩展 --with-mhash mhash算法扩展 --with-gd 打开gd库的支持 --enable-gd-native-ttf 支持TrueType字符串函数库 --with-openssl openssl的支持,加密传输https时用到的 --enable-pcntl freeTDS需要用到的,可能是链接mssql 才用到 --enable-sockets 打开 sockets 支持 --with-xmlrpc 打开xml-rpc的c语言 --enable-zip 打开对zip的支持 --enable-ftp 打开ftp的支持 --with-bz2 打开对bz2文件的支持 --without-iconv 关闭iconv函数,字符集间的转换 --with-ttf 打开freetype1.*的支持,可以不加了 --with-xsl 打开XSLT 文件支持,扩展了libXML2库 ,需要libxslt软件 --with-gettext 打开gnu 的gettext 支持,编码库用到 --with-pear 打开pear命令的支持,PHP扩展用的 --enable-calendar 打开日历扩展功能 --enable-exif 图片的元数据支持 --enable-magic-quotes 魔术引用的支持 --disable-debug 关闭调试模式 --with-mime-magic=/usr/share/file/magic.mime 魔术头文件位置 CGI方式安装才用的参数 --enable-fastCGI 支持fastcgi方式启动PHP --enable-force-CGI-redirect 重定向方式启动PHP --with-ncurses 支持ncurses 屏幕绘制以及基于文本终端的图形互动功能的动态库 --with-gmp 应该是支持一种规范 --enable-dbase 建立DBA 作为共享模块 --with-pcre-dir=/usr/local/bin/pcre-config perl的正则库案安装位置 --disable-dmalloc --with-gdbm dba的gdbm支持 --enable-sigchild --enable-sysvshm --enable-zend-multibyte 支持zend的多字节 --enable-wddx --enable-soap
nginx安装
下载解压文件后
./configure --prefix=/usr/local/nginx #编译 sudo make #讲编译好的文件安装到指定的地方 sudo make install
nginx配置解释如下
#运行用户 user nobody; #启动进程,通常设置成和cpu的数量相等 worker_processes 1; #全局错误日志及PID文件 #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; #工作模式及连接数上限 events { #epoll是多路复用IO(I/O Multiplexing)中的一种方式, #仅用于linux2.6以上内核,可以大大提高nginx的性能 use epoll; #单个后台worker process进程的最大并发链接数 worker_connections 1024; # 并发总数是 worker_processes 和 worker_connections 的乘积 # 即 max_clients = worker_processes * worker 4000 _connections # 在设置了反向代理的情况下,max_clients = worker_processes * worker_connections / 4 为什么 # 为什么上面反向代理要除以4,应该说是一个经验值 # 根据以上条件,正常情况下的Nginx Server可以应付的最大连接数为:4 * 8000 = 32000 # worker_connections 值的设置跟物理内存大小有关 # 因为并发受IO约束,max_clients的值须小于系统可以打开的最大文件数 # 而系统可以打开的最大文件数和内存大小成正比,一般1GB内存的机器上可以打开的文件数大约是10万左右 # 我们来看看360M内存的VPS可以打开的文件句柄数是多少: # $ cat /proc/sys/fs/file-max # 输出 34336 # 32000 < 34336,即并发连接总数小于系统可以打开的文件句柄总数,这样就在操作系统可以承受的范围之内 # 所以,worker_connections 的值需根据 worker_processes 进程数目和系统可以打开的最大文件总数进行适当地进行设置 # 使得并发总数小于操作系统可以打开的最大文件数目 # 其实质也就是根据主机的物理CPU和内存进行配置 # 当然,理论上的并发总数可能会和实际有所偏差,因为主机还有其他的工作进程需要消耗系统资源。 # ulimit -SHn 65535 } http { #设定mime类型,类型由mime.type文件定义 include mime.types; default_type application/octet-stream; #设定日志格式 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log logs/access.log main; #sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件, #对于普通应用,必须设为 on, #如果用来进行下载等应用磁盘IO重负载应用,可设置为 off, #以平衡磁盘与网络I/O处理速度,降低系统的uptime. sendfile on; #tcp_nopush on; #连接超时时间 #keepalive_timeout 0; keepalive_timeout 65; tcp_nodelay on; #开启gzip压缩 gzip on; gzip_disable "MSIE [1-6]."; #设定请求缓冲 client_header_buffer_size 128k; large_client_header_buffers 4 128k; #设定虚拟主机配置 server { #侦听80端口 listen 80; #定义使用 www.nginx.cn访问 server_name www.nginx.cn; #定义服务器的默认网站根目录位置 root html; #设定本虚拟主机的访问日志 access_log logs/nginx.access.log main; #默认请求 location / { #定义首页索引文件的名称 index index.php index.html index.htm; } # 定义错误提示页面 error_page 500 502 503 504 /50x.html; location = /50x.html { } #静态文件,nginx自己处理 location ~ ^/(images|javascript|js|css|flash|media|static)/ { #过期30天,静态文件不怎么更新,过期可以设大一点, #如果频繁更新,则可以设置得小一点。 expires 30d; } #PHP 脚本请求全部转发到 FastCGI处理. 使用FastCGI默认配置. location ~ .php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; #注意下面这项填错了php无法理解传过来的参数 fastcgi_param SCRIPT_FILENAME$document_root$fastcgi_script_name; include fastcgi_params; } #禁止访问 .htxxx 文件 location ~ /.ht { deny all; } } }
mysql安装(难,详解)
一、Mysql 各个版本区别:
1、MySQL Community Server 社区版本,开源免费,但不提供官方技术支持。
2、MySQL Enterprise Edition 企业版本,需付费,可以试用30天。
3、MySQL Cluster 集群版,开源免费。可将几个MySQL Server封装成一个Server。
4、MySQL Cluster CGE 高级集群版,需付费。
5、MySQL Workbench(GUI TOOL)一款专为MySQL设计的ER/数据库建模工具。它是著名的数据库设计工具DBDesigner4的继任者。MySQL Workbench又分为两个版本,分别是社区版(MySQL Workbench OSS)、商用版(MySQL Workbench SE)。
MySQL Community Server 是开源免费的,这也是我们通常用的MySQL的版本。根据不同的操作系统平台细分为多个版本。
二、
1、下载,我的是Ubuntu64位系统,因此选择
2、将下载下来的文件复制到/usr/local
sudo cp -r xxxxxxxx /usr/local/xxxxxxxx
3、解压文件
4、改名文件夹xxxxxxxx为mysql
sudo mv xxxxxxxx mysql
5、mysql默认不能以root用户启动,因此 新建mysql用户和组
groupadd mysql useradd -r -s /sbin/nologin -g mysql mysql -d /usr/local/mysql ---新建msyql用户禁止登录shell
6、改变目录所属
#cd /usr/local/mysql #pwd #chown mysql -R . #chgrp mysql -R .
7、配置参数
#mkdir data # bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
生成的临时密码
8、配置mysql.server
cd support-files sudo gedit mysql.server
添加内容到mysql.server (shell脚本文件)
basedir=/usr/local/mysql datadir=/usr/local/mysql/data
9、启动mysql服务端
./mysql.server start
10、启动mysql客服端链接mysql服务端
cd /usr/local/mysql bin/mysql -uroot –p
提示输入密码,填写上面生成的临时密码x.md1LfcsNPv
11、进去后设置正式密码
mysql> set password=password('123456');
启动 重启 停止方法
/usr/local/nginx/sbin/nginx /etc/init.d/mysql start /usr/local/php/sbin/php-fpm start #nginx命令 start: /usr/local/nginx/sbin/nginx stop: /usr/local/nginx/sbin/nginx -s stop reload: /usr/local/nginx/sbin/nginx -s reload #******************************************** php此处省略,详见下面 #******************************************** #mysql命令 start: /etc/init.d/mysqld start stop: /etc/init.d/mysqld stop restart: /etc/init.d/mysqld restart #******************************************** #tomcat命令 start: /usr/local/tomcat/bin/startup.sh stop: /bin/ps -ef | grep 'tomcat' | grep -v grep | cut -c 9-15 | xargs kill -9
php启动重启停止
启动php-fpm:
/usr/local/php/sbin/php-fpm
php 5.3.3 以后的php-fpm 不再支持 php-fpm 以前具有的 /usr/local/php/sbin/php-fpm (start|stop|reload)等命令,所以不要再看这种老掉牙的命令了,需要使用信号控制:
master进程可以理解以下信号
INT, TERM 立刻终止
QUIT 平滑终止
USR1 重新打开日志文件
USR2 平滑重载所有worker进程并重新载入配置和二进制模块
一个简单直接的重启方法:
先查看php-fpm的master进程号
# ps -aux|grep php-fpm root 21891 0.0 0.0 112660 960 pts/3 R+ 16:18 0:00 grep --color=auto php-fpm root 42891 0.0 0.1 182796 1220 ? Ss 4月18 0:19 php-fpm: master process (/usr/local/php/etc/php-fpm.conf) nobody 42892 0.0 0.6 183000 6516 ? S 4月18 0:07 php-fpm: pool www nobody 42893 0.0 0.6 183000 6508 ? S 4月18 0:17 php-fpm: pool www
重启php-fpm:
kill -USR2 42891
OK了。
上面方案一般是没有生成php-fpm.pid文件时使用,如果要生成php-fpm.pid,使用下面这种方案:
上面master进程可以看到,matster使用的是/usr/local/php/etc/php-fpm.conf这个配置文件,cat /usr/local/php/etc/php-fpm.conf 发现
[global] ; Pid file ; Note: the default prefix is /usr/local/php/var ; Default Value: none ;pid = run/php-fpm.pid
pid文件路径应该位于/usr/local/php/var/run/php-fpm.pid,由于注释掉,所以没有生成,我们把注释去除,再kill -USR2 42891 重启php-fpm,便会生成pid文件,下次就可以使用以下命令重启,关闭php-fpm了:
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’
相关文章推荐
- 搭建LNAMP(Linux+Apache+Nginx+MySQL+PHP)前后端Web(PHP)开发环境
- Nginx学习笔记——搭建Linux +Nginx+PHP+Mariadb(MySql)开发环境
- linux 下 docker NGINX+PHP+MYSQL+REDIS+Elasticsearch 开发环境搭建
- Linux 下 docker NGINX+PHP+MYSQL+REDIS+Elasticsearch 开发环境搭建
- Linux下PHP开发环境搭建-php,mysql,apache
- Mysql+Nginx+Apache2+PHP网站环境搭建(编译安装)
- 搭建linux+nginx+mysql+php环境
- linux下nginx+php+mysql环境搭建
- lnmp linux+php+mysql+nginx 环境搭建 (二)
- mac下Apache + MySql + PHP搭建网站开发环境
- Linux+Nginx+Php+Mysql环境搭建
- linux下nginx+php+mysql环境搭建
- linux下php+mysql开发环境搭建笔记
- 搭建LNMP(linux+nginx+mysql+php)服务器环境配置实例教程
- linux下nginx+php+mysql环境搭建
- linux下nginx+php+mysql环境搭建
- PHPnow搭建PHP+MYSQL网站开发环境的操作步骤
- 用PHPnow搭建PHP+MYSQL网站开发环境
- LNMP环境搭建 linux+NGINX+MYSql+PHP