首頁 後端開發 php教程 linux下 php+nginx+mysql安裝配置

linux下 php+nginx+mysql安裝配置

Aug 08, 2016 am 09:30 AM
mysql nbsp nginx php

我主要是用来安装php,以及nginx和php的交互。

一 安装插件


<span>可以选择YUM安装或者源码编译安装 </span><span>gcc</span><span>gcc</span>-c++<span> zlib
pcre
pcre-devel
libevent
libevent</span>-<span>devel
libxml2 
libxml2</span>-<span>devel
libmcrypt 
libmcrypt</span>-<span>devel
curl</span>-<span>devel
libpng</span>-<span>devel
libtool</span>-ltdl-<span>devel
gd</span>-<span>devel
openssl 
openssl</span>-<span>devel
ncurses</span>-<span>devel
cmake
mysql-devel </span>
登入後複製

 

 

 

二 安装mysql

<span>tar</span> -zxvf mysql-<span>5.5</span>.<span>25</span>.<span>tar</span><span>.gz
将mysql包解压 然后放入你想要mysql的安装位置 如本例中的/usr/local/webserver/mysql cmake命令需要这个路径</span><span>cmake \ </span>-DCMAKE_INSTALL_PREFIX=/usr/local/webserver/<span>mysql \ </span>-DMYSQL_DATADIR=/user/local/webserver/mysql/<span>data \ </span>-DSYSCONFDIR=/<span>etc \ </span>-DEXTRA_CHARSETS=<span>all \ </span>-DDEFAULT_CHARSET=<span>utf8 \ </span>-DDEFAULT_COLLATION=<span>utf8_general_ci \ </span>-DWITH_INNOBASE_STORAGE_ENGINE=<span>1</span><span> \ </span>-DWITH_ARCHIVE_STORAGE_ENGINE=<span>1</span><span> \ </span>-DWITH_BLACKHOLE_STORAGE_ENGINE=<span>1</span><span> \ </span>-DWITH_FEDERATED_STORAGE_ENGINE=<span>1</span><span> \ </span>-DWITH_PARTITION_STORAGE_ENGINE=<span>1</span><span> \ </span>-DWITH_PERFSCHEMA_STORAGE_ENGINE=<span>1</span><span> \ </span>-DMYSQL_UNIX_ADDR=/tmp/<span>mysqld.sock \ </span>-DMYSQL_TCP_PORT=<span>3306</span><span> \ </span>-DWITH_DEBUG=<span>0</span><span> \ </span>-DENABLED_LOCAL_INFILE=<span>1</span><span> 回车执行,执行完成后继续执行 </span><span>make</span> && <span>make</span><span>install</span><span>#设置Mysql
#在support</span>-<span>files目录中有五个配置信息文件(这里很重要,一定要根据自己的内存复制对应的cnf文件,否则mysql始终起不来):
#my</span>-small.cnf (内存<=<span>64M)
#my</span>-<span>medium.cnf (内存 128M)
#my</span>-<span>large.cnf (内存 512M)
#my</span>-huge.cnf (内存 1G-<span>2G)
#my</span>-innodb-heavy-<span>4G.cnf (内存 4GB)
cd </span>/usr/local/webserver/<span>mysql </span><span>cp</span> ./support-files/my-huge.cnf /etc/<span>my.cnf 
vi </span>/etc/<span>my.cnf
#在 [mysqld] 段增加
datadir </span>=  /usr/local/webserver/mysql/<span>data </span><span>wait</span>-timeout = <span>30</span><span> max_connections </span>= <span>512</span><span> default</span>-storage-engine =<span> MyISAM
#在 [mysqld] 段修改
max_allowed_packet </span>=<span> 16M </span><span>//</span><span>添加mysql运行的用户和用户组</span><span>groupadd mysql
useradd </span>-g mysql mysql -s /bin/<span>false</span> -d /home/mysql <span>//</span><span>没有shell,不可本机登陆(安全起见)</span><span> cd </span>/usr/local/webserver/<span>mysql </span><span>chown</span> -<span>R root . </span><span>chown</span> -<span>R mysql data </span><span>chgrp</span> -<span>R mysql . </span><span>//</span><span>生成新的mysql授权表 </span><span>//</span><span>进入mysql安装目录下的脚本目录</span> cd /usr/local/webserver/mysql/<span>scripts </span><span>//</span><span>利用mysql_install_db脚本生成新的mysql授权表</span> ./mysql_install_db --basedir=/usr/local/webserver/mysql --datadir=/usr/local/webserver/mysql/data --user=<span>mysql </span><span>//</span><span>mysql server在系统中的服务项设置 </span><span>//</span><span>复制服务文件并修改</span> cd /usr/local/webserver/mysql/support-<span>files </span><span>cp</span><span> mysql.server mysqld </span><span>//</span><span>修改mysqld</span> basedir=/usr/local/webserver/<span>mysql
datadir</span>=/usr/local/webserver/mysql/<span>data </span><span>mv</span> mysqld /etc/init.d/<span>mysqld </span><span>chmod</span><span>755</span> /etc/init.d/<span>mysqld
进行上述操作后 我们可以用 service mysqld start 来启动mysql服务了 </span><span>//</span><span>设置软连接使mysql,  mysqldump,  mysqladmin这三个bin命令能在shell中直接运行</span><span>sudo</span><span>ln</span> -s /usr/local/webserver/mysql/bin/mysql /usr/<span>bin </span><span>sudo</span><span>ln</span> -s /usr/local/webserver/mysql/bin/mysqldump /usr/<span>bin </span><span>sudo</span><span>ln</span> -s /usr/local/webserver/mysql/bin/mysqladmin /usr/<span>bin </span><span>rm</span> -rf /etc/mysql/my.cnf 因为已经把此文件复制到/etc/<span>my.cnf  如果不删除的话,mysql启动不起来。 </span>/etc/init.d/<span>mysqld start </span><span>//</span><span>设置root密码</span> mysqladmin -u root password <span>"</span><span>admin</span><span>"</span><span>//</span><span>mysql数据库中文乱码解决</span> vi /etc/<span>my.cnf </span><span>//</span><span>然后在[mysqld]配置选项下添加</span> character-set-server=<span>utf8 </span><span>//</span><span>然后进入mysql</span> cd /usr/local/webserver/mysql/<span>bin
mysql </span>-u root -<span>p
提示输入密码
mysql</span>> show variables like <span>'</span><span>%character%</span><span>'</span>;
登入後複製

 

三 安装Nginx 

#<span>tar</span> zxvf nginx-<span>0.8</span>.<span>24</span>.<span>tar</span><span>.gz
#cd nginx</span>-<span>0.8</span>.<span>24</span><span> #.</span>/configure --prefix=/usr/local/nginx <span>//</span><span>此处在本环节只需指定一个路径</span> #<span>make</span> && <span>make</span><span>install</span><span> #</span>/usr/local/nginx/sbin/nginx <span>//</span><span>启Nginx</span><span> 编写服务脚本(服务脚本请勿复制 请在linux下写入 不然回车换行符会引起异常)
vi </span>/etc/init.d/<span>nginx

把下列内容写入文件并保存 <span>#</span></span><span>!/bin/bash 
# nginx Startup script for the Nginx HTTP Server 
# this script create it by gcec at 2009.10.22. 
# it is v.0.0.1 version. 
# if you find any errors on this scripts,please contact gcec cyz. 
# and send mail to support at gcec dot cc. 
# 
# chkconfig: - 85 15 
# description: Nginx is a high-performance web and proxy server. 
# It has a lot of features, but it's not for everyone. 
# processname: nginx 
# pidfile: /var/run/nginx.pid 
# config: /usr/local/nginx/conf/nginx.conf 
nginxd=/usr/local/nginx/sbin/nginx  #这里设置为你安装nginx的执行文件位置
nginx_config=/usr/local/nginx/conf/nginx.conf  #这里设置为你nginx的配置文件位置
nginx_pid=/var/run/nginx.pid 
RETVAL=0 
prog="nginx" 
# Source function library. 
. /etc/rc.d/init.d/functions 
# Source networking configuration. 
. /etc/sysconfig/network 
# Check that networking is up. 
[ ${NETWORKING} = "no" ] && exit 0 
[ -x $nginxd ] || exit 0 
# Start nginx daemons functions. 
start() { 
if [ -e $nginx_pid ];then 
echo "nginx already running...." 
exit 1 
fi 
echo -n $"Starting $prog: " 
daemon $nginxd -c ${nginx_config} 
RETVAL=$? 
echo 
[ $RETVAL = 0 ] && touch /var/lock/subsys/nginx 
return $RETVAL 
} 
# Stop nginx daemons functions. 
stop() { 
echo -n $"Stopping $prog: " 
killproc $nginxd 
RETVAL=$? 
echo 
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /var/run/nginx.pid 
} 
# reload nginx service functions. 
reload() { 
echo -n $"Reloading $prog: " 
#kill -HUP `cat ${nginx_pid}` 
killproc $nginxd -HUP 
RETVAL=$? 
echo 
} 
# See how we were called. 
case "$1" in 
start) 
start 
;; 
stop) 
stop 
;; 
reload) 
reload 
;; 
restart) 
stop 
start 
;; 
status) 
status $prog 
RETVAL=$? 
;; 
*) 
echo $"Usage: $prog {start|stop|restart|reload|status|help}" 
exit 1 
esac</span><span><span>exit $RETVAL </span> 保存之后 赋予文件权限
chmod 755 /etc/init.d/nginx 

我们就可以通过service nginx start 来启动服务了 </span>
登入後複製

 

四 安装php

create user and group <span>for</span><span> fpm(fastcgi process manager)
groupadd fpm
useradd </span>--shell /sbin/nologin -<span>g fpm fpm

download, configure and </span><span>install</span> php5.<span>3.3</span><span>wget</span> http:<span>//</span><span>www.php.net/distributions/php-5.3.3.tar.gz</span><span>tar</span> zxvf php-<span>5.3</span>.<span>3</span>.<span>tar</span><span>.gz
cd php</span>-<span>5.3</span>.<span>3 </span>
登入後複製
<span>[直接复制]
./configure  --prefix=/usr/local/php  --enable-fpm  --with-fpm-user=fpm  --with-fpm-group=fpm --with-config-file-path=/usr/local/php/lib --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --without-pdo-sqlite --without-sqlite3 --without-sqlite --with-curl --enable-mbstring --with-mhash --with-mcrypt --with-openssl --with-gd --enable-sockets --with-gettext --with-zlib --enable-zip --enable-soap --with-xmlrpc --with-freetype-dir=/usr/local/freetype --enable-gd-native-ttf </span> 
<pre class="brush:php;toolbar:false"><span>--disable-fileinfo</span>
登入後複製
<span>中途错误需要yum install几个依赖包 </span><span> [手敲版]
.</span>/configure --prefix=/usr/local/<span>php \ </span>--enable-<span>fpm \ </span>--with-fpm-user=<span>fpm \ </span>--with-fpm-group=<span>fpm \ <span>--with-config-file-path=/usr/local/php/lib     #这里是配置放php.ini的存放位置</span></span>--with-mysql=<span>mysqlnd \ </span>--with-mysqli=<span>mysqlnd \ </span>--with-pdo-mysql=<span>mysqlnd \ </span>--without-pdo-<span>sqlite \ </span>--without-<span>sqlite3 \ </span>--without-<span>sqlite \ </span>--with-mysql-sock=/tmp/<span>mysql.sock \ </span>--with-<span>curl \ </span>--enable-<span>mbstring \ </span>--with-<span>mhash \ </span>--with-<span>mcrypt \ </span>--with-<span>openssl \ </span>--with-<span>gd \ </span>--enable-<span>sockets \ </span>--with-<span>gettext \ </span>--with-<span>zlib \ </span>--enable-<span>zip</span><span> \ </span>--enable-<span>soap \ </span>--with-<span>xmlrpc \
--with-freetype-dir=/usr/local/freetype \
--enable-gd-native-ttf \ <span>--with-jpeg-dir=/usr/lib64       #64位系统lib64 32位系统lib32 </span></span><span>make</span> && <span>make</span><span>install
 make出现错误</span>virtual memory exhausted: Cannot allocate memory<span>,在configure上加上–disable-fileinfo</span><span></span> 
<pre class="brush:php;toolbar:false">如果出现mysql_config not found的错误
解决办法: vi /etc/profile 在最后加入一行 export PATH="$PATH:/usr/local/mysql/bin" 这个是你的mysql安装到的目录
登入後複製


 

 五 配置php

<span>cp</span> /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
复制源码包里的php.ini-development到/usr/local/php/lib <span> vi php-fpm.conf
找到"listen="  修改为 listen = /dev/shm/php-fpm.sock (要求php版本5.3以上 该方式为使用sock文件监听)

cp</span> /backup/php-5.3.3/php.ini-development /usr/local/php/lib/php.ini
启动php
/usr/local/php/sbin/php-fpm <span>如果设置路径正确,php.ini文件也存在,还无法加载php.ini的话 修改启动命令 /usr/local/php/sbin/php-fpm -c /etc/php.ini</span>编写服务脚本(服务脚本请勿复制 请在linux下写入 不然回车换行符会引起异常)
touch /etc/init.d/phpfpm
vim /etc/init.d/phpfpm

内容如下:
登入後複製

#!/bin/bash

start() {  

     /usr/local/php/sbin/php-fpm  

     /bin/echo 'starting php listener ---[ok]'

}

stop() {  

     /usr/bin/pkill php-fpm  

     /bin/echo 'stopping php listener ---[ok]'

}

case "$1" in

start)   

    start   

    ;;

stop)   

    stop   

    ;;

restart)   

    stop   

    start   

    ;;

*)  

    echo 'usage:start/stop/restart'  

    exit 0  

    ;;

esac

 

保存退出

然后 就能通过 service phpfpm start/stop/restart 来启动监听

 六 配置Nginx

cat /usr/local/php/etc/php-fpm.conf
查看端口 为 127.0.0.1:9000
修改nginx配置文件 /usr/local/nginx/conf/<span>nginx.conf </span><span># location / {    //一定要注掉这部分,否则会不解析PHP文件,而会下载 了 
#    root   html;  
#    index  index.html index.htm;  
#} </span><span></span>
登入後複製
<span><span>location </span></span><span>~ \.php {
 
  root              www;          #这是你网站的根目录
 
  fastcgi_pass  127.0.0.1:9000;            #这里指定了fastcgi进程侦听的端口,nginx就是通过这里与php交互的
       #</span>fastcgi_pass      unix:/dev/shm/php-fpm.sock;
登入後複製
<span>  fastcgi_index  index.php;   fastcgi_param SCRIPT_FILENAME <span>$document_root</span>/</span><span><span>$fastcgi_script_name; 
   #因为SCRIPT_FILENAME在配置中是写死的并没有随着$doucument_root变化而变化,我们可以修改SCRIPT_FILENAME配置如下 </span></span> #fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;<span><span>   include           fastcgi_params;        
 
}</span> 重启nginx服务
/usr/local/nginx/sbin/nginx -s reload
在/usr/local/nginx下创建www目录
mkdir www
新建一个index.php文件
cd www
vim index.php
写入<?php echo phpinfo();?>

访问服务器 如果起作用就说明配置成功</span>
登入後複製

 

七 设置php nginx mysql 自启动

<span>我想在centos里不启用图形界面
那么选择系统运行级别为2或者3的 推荐3 </span>在配置之前 我们先检查下 /etc/init.d中有没有我们mysql,php,nginx的服务脚本 如果没有的话 先配置再做下列操作

如以上 mysqld , nginx, phpfpm 这3个脚本都编写好 并且放入/etc/init.d下的话 我们来配置一下自启动
我想通过一个服务来启动这3个服务那么再写一个脚本就可以了

登入後複製

注意:system类型的服务都可以用service来启动,用chkconfig来add 和del

但是有些自己配置的服务在用chkconfig来配置到时候会提示: “service XX does not support chkconfig”

这一般都是script不符合格式造成的,解决如下,

在script开始加入两行内容即可:

# chkconfig: - 85 15

# description: this is a World Wide Web server.

<span>mv /etc/init.d/mysqld /etc/init.d/webapp-mysqld</span><span>mv /etc/init.d/nginx /etc/init.d/webapp-nginx</span><span>mv /etc/init.d/phpfpm /etc/init.d/webapp-phpfpm</span><span>touch /etc/init.d/webapp</span><span>vim /etc/init.d/webapp</span>写入以下脚本
登入後複製

#!/bin/bash

# chkconfig: - 85 15
# description: this is a World Wide Web server.

ACTION=$1

if [ "$ACTION" = "" ] || [ "$ACTION" = "start" ];then    

  #start php listeners  

  /sbin/service webapp-phpfpm start

  #start nginx service  

  /sbin/service webapp-nginx start

  #start mysql service  

  /sbin/service webapp-mysqld start

  echo "web applications[mysql,nginx,php] is running now !"

elif [ "$ACTION" = "stop" ];then    

   /sbin/service webapp-phpfpm stop  

   /sbin/service webapp-nginx stop  

   /sbin/service webapp-mysqld stop    

   echo 'web application stopped' 

else

   echo "use start or stop or none after your service command"

fi

 

 

 新增系統服務開機啟動

 chkconfig --add webapp(注意在/etc/init.d下的服務腳本必須加入#chkconfig 和 #description的內容才能夠在這裡支援chkconfig指令,以上已經提到過)

 chkconfig --level 3 webapp on

 

 這樣我們的lamp的架構就配置成功了

 

 說明:

 

語法為:

 

chkconfig --list [name] 用來清單服務

  

chkconfig --add name 用來新增服務

 

chkconfig --del name 用來刪除服務

 

chkconfig [--level levels] name 改變啟動訊息以及檢查特定服務的啟動狀態。

 

on 和 off 分別指服務在改變運作等級時的啟動和停止。 reset 指初始化服務資訊。

 

對於 on 和 off 開關,系統預設只對運行級 3,4, 5有效,但是 reset 可以對所有運行級有效。

 


 

以上就介紹了linux下 php+nginx+mysql安裝配置,包含了mysql安裝方面的內容,希望對PHP教學有興趣的朋友有幫助。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1669
14
CakePHP 教程
1428
52
Laravel 教程
1329
25
PHP教程
1273
29
C# 教程
1256
24
session_start()函數的意義是什麼? session_start()函數的意義是什麼? May 03, 2025 am 12:18 AM

session_start()iscucialinphpformanagingusersessions.1)ItInitiateSanewsessionifnoneexists,2)resumesanexistingsessions,and3)setsasesessionCookieforContinuityActinuityAccontinuityAcconActInityAcconActInityAcconAccRequests,EnablingApplicationsApplicationsLikeUseAppericationLikeUseAthenticationalticationaltication and PersersonalizedContentent。

給MySQL表添加和刪除字段的操作步驟 給MySQL表添加和刪除字段的操作步驟 Apr 29, 2025 pm 04:15 PM

在MySQL中,添加字段使用ALTERTABLEtable_nameADDCOLUMNnew_columnVARCHAR(255)AFTERexisting_column,刪除字段使用ALTERTABLEtable_nameDROPCOLUMNcolumn_to_drop。添加字段時,需指定位置以優化查詢性能和數據結構;刪除字段前需確認操作不可逆;使用在線DDL、備份數據、測試環境和低負載時間段修改表結構是性能優化和最佳實踐。

怎樣卸載MySQL並清理殘留文件 怎樣卸載MySQL並清理殘留文件 Apr 29, 2025 pm 04:03 PM

要安全、徹底地卸載MySQL並清理所有殘留文件,需遵循以下步驟:1.停止MySQL服務;2.卸載MySQL軟件包;3.清理配置文件和數據目錄;4.驗證卸載是否徹底。

MySQL批量插入數據的高效方法 MySQL批量插入數據的高效方法 Apr 29, 2025 pm 04:18 PM

MySQL批量插入数据的高效方法包括:1.使用INSERTINTO...VALUES语法,2.利用LOADDATAINFILE命令,3.使用事务处理,4.调整批量大小,5.禁用索引,6.使用INSERTIGNORE或INSERT...ONDUPLICATEKEYUPDATE,这些方法能显著提升数据库操作效率。

如何使用MySQL的函數進行數據處理和計算 如何使用MySQL的函數進行數據處理和計算 Apr 29, 2025 pm 04:21 PM

MySQL函數可用於數據處理和計算。 1.基本用法包括字符串處理、日期計算和數學運算。 2.高級用法涉及結合多個函數實現複雜操作。 3.性能優化需避免在WHERE子句中使用函數,並使用GROUPBY和臨時表。

作曲家:PHP開發人員的軟件包經理 作曲家:PHP開發人員的軟件包經理 May 02, 2025 am 12:23 AM

Composer是PHP的依賴管理工具,通過composer.json文件管理項目依賴。 1)解析composer.json獲取依賴信息;2)解析依賴關係形成依賴樹;3)從Packagist下載並安裝依賴到vendor目錄;4)生成composer.lock文件鎖定依賴版本,確保團隊一致性和項目可維護性。

MySQL在macOS系統的安裝步驟詳解 MySQL在macOS系統的安裝步驟詳解 Apr 29, 2025 pm 03:36 PM

在macOS上安裝MySQL可以通過以下步驟實現:1.安裝Homebrew,使用命令/bin/bash-c"$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"。 2.更新Homebrew,使用brewupdate。 3.安裝MySQL,使用brewinstallmysql。 4.啟動MySQL服務,使用brewservicesstartmysql。安裝後,可通過mysql-u

如何分析MySQL查詢的執行計劃 如何分析MySQL查詢的執行計劃 Apr 29, 2025 pm 04:12 PM

使用EXPLAIN命令可以分析MySQL查詢的執行計劃。 1.EXPLAIN命令顯示查詢的執行計劃,幫助找出性能瓶頸。 2.執行計劃包括id、select_type、table、type、possible_keys、key、key_len、ref、rows和Extra等字段。 3.根據執行計劃,可以通過添加索引、避免全表掃描、優化JOIN操作和使用覆蓋索引來優化查詢。

See all articles