Linux下php+mysql+nginx编译搭建(一)
之前一直都是一键搭建的web服务器,但是一键搭建的环境相对来说都是比较老的。如果要用比较新的环境,特别是正式服务器,就必须自己手动编译搭建了(以下搭建基于linux centos6.5 32位服务器)。 1、 nginx 版本:1.5 下载地址: http://nginx.org/download/
之前一直都是一键搭建的web服务器,但是一键搭建的环境相对来说都是比较老的。如果要用比较新的环境,特别是正式服务器,就必须自己手动编译搭建了(以下搭建基于linux centos6.5 32位服务器)。
1、 nginx
版本:1.5
下载地址: http://nginx.org/download/nginx-1.5.2.tar.gz
2、 mysql
版本5.5
下载地址:http://downloads.mysql.com/archives/mysql-5.0/mysql-5.5.30.tar.gz
3、 php
版本5.4
下载地址:http://am1.php.net/get/php-5.4.34.tar.gz/from/this/mirror
一:安装nginx
安装一些依赖包:
<ol><li> <span>yum </span><span>-</span><span>y install gcc gcc</span><span>-</span><span>c</span><span>++</span><span> gcc</span><span>-</span><span>devel gcc</span><span>-</span><span>c</span><span>++-</span><span>devel ssl ssl</span><span>-</span><span>devel autoconf make aclocal libtool expat</span><span>-</span><span>devel libxml2</span><span>-</span><span>devel openssl openssl</span><span>-</span><span>devel zlib zlib</span><span>-</span><span>devel bzip2 bzip2</span><span>-</span><span>devel gd gd</span><span>-</span><span>devel libmcrypt libmcrypt</span><span>-</span><span>devel libXpm</span><span>-</span><span>devel curl</span><span>-</span><span>devel libgd</span><span>-</span><span>devel gd</span><span>-</span><span>devel openldap</span><span>-</span><span>devel</span> </li></ol>
进入一个目录:
<ol><li> <span>cd </span><span>/</span><span>opt</span><span>/</span> </li></ol>
下载并解压:
<ol> <li> <span>wget http</span><span>:</span><span>//nginx.org/download/nginx-1.5.2.tar.gz</span> </li> <li> <span>tar </span><span>-</span><span>zxf nginx</span><span>-</span><span>1.5</span><span>.</span><span>2.tar</span><span>.</span><span>gz</span> </li> <li> <span>wget http</span><span>:</span><span>//labs.frickle.com/files/ngx_cache_purge-2.1.tar.gz</span> </li> <li> <span>tar </span><span>-</span><span>zxf ngx_cache_purge</span><span>-</span><span>2.1</span><span>.</span><span>tar</span><span>.</span><span>gz</span> </li> </ol>
进入目录并编译:
<ol> <li> <span>cd nginx</span><span>-</span><span>1.5</span><span>.</span><span>2</span> </li> <li> <span>./</span><span>configure </span><span>--</span><span>prefix</span><span>=</span><span>/usr/</span><span>local</span><span>/</span><span>nginx </span><span>--</span><span>sbin</span><span>-</span><span>path</span><span>=</span><span>/usr/</span><span>local</span><span>/</span><span>nginx</span><span>/</span><span>sbin</span><span>/</span><span>nginx </span><span>--</span><span>conf</span><span>-</span><span>path</span><span>=</span><span>/usr/</span><span>local</span><span>/</span><span>nginx</span><span>/</span><span>conf</span><span>/</span><span>nginx</span><span>.</span><span>conf </span><span>--</span><span>error</span><span>-</span><span>log</span><span>-</span><span>path</span><span>=</span><span>/usr/</span><span>local</span><span>/</span><span>nginx</span><span>/</span><span>log</span><span>/</span><span>error</span><span>.</span><span>log </span><span>--</span><span>http</span><span>-</span><span>log</span><span>-</span><span>path</span><span>=</span><span>/usr/</span><span>local</span><span>/</span><span>nginx</span><span>/</span><span>log</span><span>/</span><span>access</span><span>.</span><span>log </span><span>--</span><span>pid</span><span>-</span><span>path</span><span>=</span><span>/usr/</span><span>local</span><span>/</span><span>nginx</span><span>/</span><span>run</span><span>/</span><span>nginx</span><span>.</span><span>pid </span><span>--</span><span>user</span><span>=</span><span>www </span><span>--</span><span>group</span><span>=</span><span>www </span><span>--</span><span>with</span><span>-</span><span>http_ssl_module </span><span>--</span><span>with</span><span>-</span><span>http_flv_module </span><span>--</span><span>with</span><span>-</span><span>http_stub_status_module </span><span>--</span><span>with</span><span>-</span><span>http_gzip_static_module </span><span>--</span><span>http</span><span>-</span><span>client</span><span>-</span><span>body</span><span>-</span><span>temp</span><span>-</span><span>path</span><span>=</span><span>/usr/</span><span>local</span><span>/</span><span>nginx</span><span>/</span><span>tmp</span><span>/</span><span>client </span><span>--</span><span>http</span><span>-</span><span>proxy</span><span>-</span><span>temp</span><span>-</span><span>path</span><span>=</span><span>/usr/</span><span>local</span><span>/</span><span>nginx</span><span>/</span><span>tmp</span><span>/</span><span>proxy</span><span>/</span><span>--</span><span>http</span><span>-</span><span>fastcgi</span><span>-</span><span>temp</span><span>-</span><span>path</span><span>=</span><span>/usr/</span><span>local</span><span>/</span><span>nginx</span><span>/</span><span>tmp</span><span>/</span><span>fcgi</span><span>/</span><span>--</span><span>add</span><span>-</span><span>module</span><span>=../</span><span>ngx_cache_purge</span><span>-</span><span>2.1</span><span>--</span><span>with</span><span>-</span><span>pcre</span><span>=../</span><span>pcre</span><span>-</span><span>8.34</span> </li> <li> <span>make </span><span>&&</span><span> make install</span> </li> </ol>
这样就完成了nginx的搭建。
运行:/usr/local/nginx/sbin/nginx
报错:nginx: [emerg] getpwnam("www") failed
在nginx.conf中 把user nobody的注释去掉既可,改成www
再次运行:/usr/local/nginx/sbin/nginx
报错:nginx: [emerg] getpwnam("www") failed in /usr/local/nginx/conf/nginx.conf:1
错误的原因是没有创建www这个用户,应该在服务器系统中添加www用户组和用户www,如下命令:
<ol> <li> <span>groupadd </span><span>-</span><span>f www</span> </li> <li> <span>useradd </span><span>-</span><span>g www www</span> </li> </ol>
第三次运行:/usr/local/nginx/sbin/nginx
报错:nginx: [emerg] mkdir() "/usr/local/nginx/tmp/client" failed (2: No such file or directory)
执行:mkdir -p /usr/local/nginx/tmp/client
然后localhost访问就可以看到:
习惯了了/etc/init.d/nginx start?觉得/usr/local/nginx/sbin/nginx 太长?
Vim /etc/init.d/nginx
<ol> <li><span>#!/bin/bash</span></li> <li><span>#</span></li> <li><span># Init file for nginx server daemon</span></li> <li><span>#</span></li> <li><span># chkconfig: 234 99 99</span></li> <li><span># description: nginx server daemon</span></li> <li><span>#</span></li> <li><span># source function library</span></li> <li> <span>.</span><span>/</span><span>etc</span><span>/</span><span>rc</span><span>.</span><span>d</span><span>/</span><span>init</span><span>.</span><span>d</span><span>/</span><span>functions</span> </li> <li><span># pull in sysconfig settings</span></li> <li> <span>[</span><span>-</span><span>f </span><span>/</span><span>etc</span><span>/</span><span>sysconfig</span><span>/</span><span>nginx </span><span>]</span><span>&&</span><span>.</span><span>/</span><span>etc</span><span>/</span><span>sysconfig</span><span>/</span><span>nginx</span> </li> <li> <span>RETVAL</span><span>=</span><span>0</span> </li> <li> <span>prog</span><span>=</span><span>"nginx"</span> </li> <li> <span>PAT</span><span>=</span><span>/usr/</span><span>local</span><span>/</span><span>nginx</span> </li> <li> <span>NGINXD</span><span>=</span><span>/usr/</span><span>local</span><span>/</span><span>nginx</span><span>/</span><span>sbin</span><span>/</span><span>nginx</span> </li> <li> <span>PID_FILE</span><span>=</span><span>/usr/</span><span>local</span><span>/</span><span>nginx</span><span>/</span><span>nginx</span><span>.</span><span>pid</span> </li> <li> <span>start</span><span>()</span> </li> <li><span>{</span></li> <li> <span>echo </span><span>-</span><span>n $</span><span>"Starting $prog: "</span> </li> <li> <span>$NGINXD </span><span>2</span><span>></span><span>/dev/</span><span>null</span><span> $OPTIONS </span><span>&&</span><span> success </span><span>||</span><span> failure</span> </li> <li> <span>RETVAL</span><span>=</span><span>$</span><span>?</span> </li> <li> <span>[</span><span>"$RETVAL"</span><span>=</span><span>0</span><span>]</span><span>&&</span><span> touch </span><span>/</span><span>var</span><span>/</span><span>lock</span><span>/</span><span>subsys</span><span>/</span><span>nginx</span> </li> <li><span>echo</span></li> <li><span>}</span></li> <li> <span>stop</span><span>()</span> </li> <li><span>{</span></li> <li> <span>echo </span><span>-</span><span>n $</span><span>"Shutting down $prog: "</span> </li> <li><span>killproc nginx</span></li> <li> <span>RETVAL</span><span>=</span><span>$</span><span>?</span> </li> <li><span>echo</span></li> <li> <span>[</span><span> $RETVAL </span><span>-</span><span>eq </span><span>0</span><span>]</span><span>&&</span><span> rm </span><span>-</span><span>f </span><span>/</span><span>var</span><span>/</span><span>lock</span><span>/</span><span>subsys</span><span>/</span><span>nginx</span> </li> <li> <span>return</span><span> $RETVAL</span> </li> <li><span>}</span></li> <li> <span>reload</span><span>()</span> </li> <li><span>{</span></li> <li> <span>echo </span><span>-</span><span>n $</span><span>"Reloading nginx: "</span> </li> <li> <span>killproc nginx </span><span>-</span><span>HUP</span> </li> <li> <span>RETVAL</span><span>=</span><span>$</span><span>?</span> </li> <li><span>echo</span></li> <li> <span>return</span><span> $RETVAL</span> </li> <li><span>}</span></li> <li> <span>case</span><span>"$1"</span><span>in</span> </li> <li> <span>"start"</span><span>)</span> </li> <li><span>start</span></li> <li><span>;;</span></li> <li> <span>"stop"</span><span>)</span> </li> <li><span>stop</span></li> <li><span>;;</span></li> <li> <span>"restart"</span><span>)</span> </li> <li><span>stop</span></li> <li><span>start</span></li> <li><span>;;</span></li> <li> <span>"reload"</span><span>)</span> </li> <li><span>reload</span></li> <li><span>;;</span></li> <li> <span>"status"</span><span>)</span> </li> <li> <span>status </span><span>-</span><span>p $PID_FILE nginx</span> </li> <li> <span>RETVAL</span><span>=</span><span>$</span><span>?</span> </li> <li><span>;;</span></li> <li><span>*)</span></li> <li><span> </span></li> <li> <span>echo $</span><span>"Usage: $0 {start|stop|restart|reload|status}"</span> </li> <li> <span>RETVAL</span><span>=</span><span>1</span> </li> <li><span>esac</span></li> <li> <span>exit</span><span> $RETVAL</span> </li> </ol>
保存,添加x权限。
如需开机启动:
chkconfig nginx on
更多请支持:http://www.webyang.net/Html/web/article_127.html

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

For many users, hacking an Android TV box sounds daunting. However, developer Murray R. Van Luyn faced the challenge of looking for suitable alternatives to the Raspberry Pi during the Broadcom chip shortage. His collaborative efforts with the Armbia

DeepSeek is a powerful intelligent search and analysis tool that provides two access methods: web version and official website. The web version is convenient and efficient, and can be used without installation; the official website provides comprehensive product information, download resources and support services. Whether individuals or corporate users, they can easily obtain and analyze massive data through DeepSeek to improve work efficiency, assist decision-making and promote innovation.

There are many ways to install DeepSeek, including: compile from source (for experienced developers) using precompiled packages (for Windows users) using Docker containers (for most convenient, no need to worry about compatibility) No matter which method you choose, Please read the official documents carefully and prepare them fully to avoid unnecessary trouble.

How to download BitPie Bitpie Wallet App? The steps are as follows: Search for "BitPie Bitpie Wallet" in the AppStore (Apple devices) or Google Play Store (Android devices). Click the "Get" or "Install" button to download the app. For the computer version, visit the official BitPie wallet website and download the corresponding software package.

BITGet is a cryptocurrency exchange that provides a variety of trading services including spot trading, contract trading and derivatives. Founded in 2018, the exchange is headquartered in Singapore and is committed to providing users with a safe and reliable trading platform. BITGet offers a variety of trading pairs, including BTC/USDT, ETH/USDT and XRP/USDT. Additionally, the exchange has a reputation for security and liquidity and offers a variety of features such as premium order types, leveraged trading and 24/7 customer support.

The system variable $n is the parameter passed to the script or function. n is a number indicating the number of parameters. For example, the first parameter is $1, and the second parameter is $2$? The exit status of the previous command, or the return value of the function. Returns 0 on success, 1 on failure $#Number of parameters passed to the script or function $* All these parameters are enclosed in double quotes. If a script receives two parameters, $* is equal to $1$2$0The name of the command being executed. For shell scripts, this is the path to the activated command. When $@ is enclosed in double quotes (""), it is slightly different from $*. If a script receives two parameters, $@ is equivalent to $1$2$$the process number of the current shell. For a shell script, this is the process I when it is executing

1. Installation environment (Hyper-V virtual machine): $hostnamectlStatichostname:localhost.localdomainIconname:computer-vmChassis:vmMachineID:renwoles1d8743989a40cb81db696400BootID:renwoles272f4aa59935dcdd0d456501Virtualization:microsoftOperatingSystem:CentOS Linux7(Core)CPEOSName:cpe:

Ouyi OKX, the world's leading digital asset exchange, has now launched an official installation package to provide a safe and convenient trading experience. The OKX installation package of Ouyi does not need to be accessed through a browser. It can directly install independent applications on the device, creating a stable and efficient trading platform for users. The installation process is simple and easy to understand. Users only need to download the latest version of the installation package and follow the prompts to complete the installation step by step.
