linux下php+nginx+mysql网站开发环境搭建

news/2024/5/12 7:53:43/文章来源:https://blog.csdn.net/qq_26046771/article/details/78286435

php安装
(最好先安装好了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_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命令 (mysql.server是上面安装时配置的脚本)start: 
./mysql.server startstop: 
./mysql.server stop restart: 
./mysql.server restart 

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’

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_895030.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

给网站做301重定向

一、什么是网站301重定向 页面永久性移走&#xff08;301重定向&#xff09;是一种非常重要的“自动转向”技术。网址重定向最为可行的一种办法。当用户或搜索引擎向网站服务器发出浏览请求时&#xff0c;服务器返回的HTTP数据流中头信息(header)中的状态码的一种&#xff0c;…

大型网站架构技能图谱(Java版)

分享一下我老师大神的人工智能教程&#xff01;零基础&#xff0c;通俗易懂&#xff01;http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章。分享知识&#xff0c;造福人民&#xff0c;实现我们中华民族伟大复兴&#xff01; 在大型网站技术架构中&#xff0c;涉及到许…

大型网站架构演变史(含技术栈与价值观)

这篇文章是参考李智慧的《大型网站技术架构&#xff1a;核心原理与案例分析》和现蘑菇街CTO曽宪杰的《大型网站系统与Java中间件实践》写的一篇读书笔记。 前言 何谓大型网站&#xff1f;大型网站的特点是什么&#xff1f;大型网站架构发生演变的源动力是什么&#xff1f;大型网…

网站受到攻击会有哪些症状?

近期&#xff0c;小编我遇见了很多的网站客户反映说受到了DDoS攻击和CC攻击&#xff0c;被攻击对于开发运营维护人员&#xff0c;对此他们也表示很头疼。现阶段大多数网站使用的开发语言是PHP&#xff0c;JAVA&#xff0c;.net&#xff0c;数据库语言使用的是mysql&#xff0c;…

网站安全有哪些防护措施?

网站安全是指出于防止网站受到外来电脑入侵者对其 网站进行挂马,篡改网页等行为而做出一系列的防御工作。启动一个新网站是一个令人兴奋的项目,充满了许多重要的步骤和决定。但是,作为网站的所有者,您不仅要处理被黑客入侵的后果,还要对其页面上的内容以及人们用来与之交互…

C#:万能表单+ajax实现网站文章阅读次数限制,若达到限制次数,则需付费购买文章(单篇文章)

网站后台创建万能表单&#xff0c;字段如图 html页面判断用户是否登录状态&#xff0c;参数传递ajax异步&#xff0c;成功或失败后的业务处理。 //判断用户是否登陆 <script type"text/javascript"><%csharp%> DTcms.Model.users mucGetUserInfo(); if…

万能表单+ajax+JQuery实现网站文章包月

在单篇文章购买的基础上改进&#xff0c;修改为付费购买实现文章包月阅读。 在之前的基础上新增一个表单&#xff0c;用来控制文章购买时间及金额。 前端内容页代码块 <%csharp%>string chanid ""; <%/csharp%><%set DataTable pingjyiuDtNetWing…

浅谈网站ssl证书不可信的原因!

相信大多网友在浏览网站的过程中都遇到过“ssl证书不可信”的情况&#xff0c;大多网友遇到这种情况可能第一时间是选择离开该网站&#xff0c;有少许人会继续浏览网站。 可能很多人不知道ssl证书是什么&#xff1f;这个作者不多做介绍&#xff0c;网上关于ssl是什么网上多的是…

Ubuntu22.04安装ChineseOcr_lite

文章目录 前言 一、开源项目地址 二、使用步骤 1.安装conda命令 2.创建python3.6环境 3.下载开源项目 4.安装依赖 5.安装make与g 6.编译 7.在chineseocr_lite-master目录下启动项目 总结 前言 环境是windows下使用VirtualBox软件运行的ubuntu22.04LTS 64位带桌面版本 一、开源…

编程竞赛和逻辑谜题网站大集合

我们都知道&#xff0c;每天的编程生活可能有时候会有些乏味。 看这个&#xff1a; Joanna: Peter&#xff0c;你在哪工作呢&#xff1f; Peter: Initech. Joanna: 在哪……&#xff1f;好吧&#xff0c;你在那里做什么呢&#xff1f; Peter: 我在一个小黑屋里&#xff0c;给银…

Centos(阿里云)服务器上的多网站,多Tomcat部署详细步骤

真正阿里云真机部署全部内容有偿分享。节省时间&#xff0c;有需要的可以有偿下载。 下载地址&#xff1a; https://download.csdn.net/download/mzy8000/19821357 例子&#xff1a; ——TOMCAT安装目录&#xff1a; /usr/local/tomcatdalianborui/apache-tomcat-7.0.32 /us…

作为前端开发值得了解的网站集合

https://blog.csdn.net/weixin_43606158/article/details/91164392

16简易LED企业网站源码

16简易LED企业网站源码 源码描述 网站基本描述&#xff1a; 前台&#xff1a; 网站首页&#xff0c;关于本站&#xff0c;产品中心&#xff0c;案例中心&#xff0c;客户咨询&#xff0c;联系我们 后台&#xff1a; 系统管理&#xff0c;公司信息&#xff0c;新闻管理&#xff…

Python爬虫获取招聘网站职位信息

摘要 本文介绍如何使用Python编写爬虫&#xff0c;来获取招聘网站中感兴趣的职位信息。 好的开始&#xff0c;成功一半。另一半呢&#xff1f;知己知彼&#xff0c;百战百胜。 0. 环境 0.1 Python解释器安装 推荐使用Anaconda发行版&#xff0c;其包含了多个科学包及其依赖…

和平精英官方网站静态页面制作与学习html+css保姆级教程

项目准备 新建html和两个css文件&#xff0c;一个嵌套另一个用于模块化管理 index.css设置样式&#xff0c;public.css设置公用样式 和平精英官网 头部 通栏 通栏左部 在header里面新建div盒container类&#xff0c;内置左右两部分 左边是和平精英logo&#xff08;img&#…

微信登录网站session不一致问题

在进行微信开发时&#xff0c;用到的一个功能是微信登录网站&#xff0c;流程是用户使用手机登录网站后调到一个完善用户资料的接口&#xff0c;在这个接口中将用户信息保存在session,然后提交用户信息后用户可以点击绑定微信的按钮&#xff0c;当微信那边回调到项目的地址时&a…

div+css搭建网站

一&#xff0c;分析页面结构 如一个页面有导航栏 该结构在分析时应从大到小进行分析 首先是一个大div里面套有3个小div 中间的div是一个ul li结构 一&#xff0c;应设置body的属性比如字体大小和类型 二&#xff0c;应设置父div的宽&#xff0c;高由内容填充 三&#…

个人网站如何使用微信扫一扫登录---SpringBoot项目

文章目录 前言一、码上登录是什么&#xff1f;二、使用步骤1.登录前准备&#xff0c;获取SecretKey2.前端发起登录请求3.后端调用“码上登录”服务器3.1. 配置文件3.2. 发起请求3.3.返回的参数 4.前端显示二维码5、扫一扫登录6 、登录成功后接收用户信息7、通知前端登录成功并返…

(16)让你的网站在移动设备上同样精彩!

问题 默认情况下&#xff0c;你的网站在移动设备上展现的可能不太好。当然&#xff0c;有的移动设备足够让你的网站在它上显示。但是这也不是稳妥的。可能你不希望为移动电话创建一个全新的网站&#xff0c;成本太高。 解决方案 使用jQuery mobile NuGet包&#xff0c;改变共…