日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

nginx+mysql+php

發布時間:2025/3/20 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nginx+mysql+php 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

根據生產環境安裝操作系統(centos 6.0 64位系統),安裝完成后,使用Xshell通過ssh協議連接服務器。
ssh 用戶名@IP+回車+輸入密碼后登錄系統。
#mkdir -p /home/tools //創建軟件存儲目錄
#cd /home/tools //進入軟件存儲目錄
將軟件包上傳到/home/tools


安裝nginx:
#/usr/sbin/groupadd www //創建php用戶
#/usr/sbin/useradd -g www www //創建用戶組,并且把php用戶加入到用戶組
#tar -zxvf pcre-8.10.tar.gz //解壓pcre,安裝pcre是為了讓nginx支持HTTP Rewrite模塊
#cd pcre-8.10 //進入pcre的解壓目錄
#./configure //編譯PCRE
#make && make install //安裝pcre
#cd .. //進入軟件存儲目錄
#wget http://zlib.net/zlib-1.2.7.tar.gz //下載zlib
#yum -y install wget //安裝wget
#wget http://zlib.net/zlib-1.2.7.tar.gz //下載zlib
#tar -zxvf zlib-1.2.7.tar.gz //解壓zlib
#cd zlib-1.2.7 //進入zlib解壓目錄
#./configure //編譯zlib
#make && make install //安裝zlib
#yum -y install openssl //安裝openssl,支持https
#rpm -ivh rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm //安裝第三方軟件源
#cd .. //進入軟件安裝目錄
#tar -zxvf nginx-1.2.6.tar.gz //解壓nginx。
#cd nginx-1.2.6 //進入nginx的解壓目錄
#./configure --user=www --group=www --with-http_stub_status_module --with-http_gzip_static_module --prefix=/usr/local/nginx //編譯nginx
#make && make install //安裝nginx
#/usr/local/nginx/sbin/nginx //啟動nginx
#ps -ef |grep nginx //查詢nginx是否啟動
有如下顯示為nginx已經安裝完成并成功啟動。
root 8573 1 0 20:32 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
nobody 8574 8573 0 20:32 ? 00:00:00 nginx: worker process

創建Nginx日志目錄

#mkdir -p /home/logs //創建Nginx日志目錄
#chmod +w /home/logs //設置nginx日志目錄可寫
#chown -R www:www /home/logs //將php用戶對nginx日志目錄可寫。

每創建一個域名,則在該目錄下創建一個以域名命令的文件夾用于保存日志


修改Nginx配置文件
#vim /usr/local/nginx/conf/nginx.conf //編輯nginx的配置文件,在編輯前需要備份之前的配置文件
user nobody nobody; //指定nginx運行用戶
worker_processes 8; //配置nginx的進程

error_log /home/logs/nginx-log/error.log crit;//nginx運行日志
pid /usr/local/nginx/logs/nginx.pid; //nginx進程存儲目錄

worker_rlimit_nofile 65535;
events {
use epoll;
worker_connections 65535;
}

http {
include mime.types;
default_type application/octet-stream;//如果想在瀏覽器中訪問json的內容,將此處修改為:test/html
charset utf-8;
#log_format access '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent $http_x_forwarded_for';
log_format access '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for" host';

server_names_hash_bucket_size 128;
client_header_buffer_size 4k;
large_client_header_buffers 4 4k;

sendfile on;
tcp_nopush on;
tcp_nodelay on;

server_tokens off;
keepalive_timeout 60;

gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
#gzip_types text/plain application/x-javascript text/css application/xml;
gzip_types text/plain application/x-javascript text/css;
gzip_vary on;
server {
listen 80 default;
return 200;
}

server {
listen 80;
server_name www.zhezi.com;
root /home/app/www.zhezi.com/v1.6.2.2313/;
location / {
index index.php index.html index.htm;
}
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;
}

location /v1.6/ {
alias /home/app/www.zhezi.com/v1.6.2.2313/;
index index.php;
}
location ~ ^/v1.6/(.*\.php)$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/app/www.zhezi.com/v1.6.2.2313/$1;
include fastcgi_params;
}

location /yd/ {
alias /home/app/www.zhezi.com/yd/;
#autoindex on;
}

access_log /home/logs/www.zhezi.com/access.log access;
error_log /home/logs/www.zhezi.com/error.log info;
}
}

編寫每天定時切割Nginx日志的腳本
#cd /home
#mkdir crontab
#cd crontab
#touch cut_nginx_log.sh
#vim /home/crontab/cut_nginx_log.sh
#!/bin/bash
# This script run at 00:10

# The Nginx logs path
logs_path="/home/logs/www.zhezi.com/"

mkdir -p ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/
mv ${logs_path}access.log ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/access_$(date -d "yesterday" +"%Y%m%d").log
kill -USR1 `cat /home/nginx/logs/nginx.pid`
#chmod +x /home/crontab/cut_nginx_log.sh
#chown www:www /home/crontab/cut_nginx_log.sh

?

設置crontab,每天凌晨00:10切割nginx訪問日志
#crontab -e
00 10 * * * /bin/bash /home/crontab/cut_nginx_log.sh
保存計劃任務

?

配置開機自動啟動Nginx + PHP
#vim /etc/rc.d/rc.local
ulimit -SHn 65535
/usr/local/php/sbin/php-fpm start
/usr/local/nginx/sbin/nginx

檢查nginx配置文件是否正確
#/usr/local/nginx/sbin/nginx -t //檢查nginx配置文件是否正確

#/usr/local/nginx/sbin/nginx -s reload //平滑重啟

?


mysql 安裝:
#/usr/sbin/groupadd mysql //創建mysql用戶
#/usr/sbin/useradd -g mysql mysql //創建mysql用戶組,并且把mysql用戶加入到這個組中
#yum -y install mysql-devel //安裝mysql客戶端
#wget http://www.mysql.com/get/Downloads/MySQL-5.0/mysql-5.0.96.tar.gz/from/http://cdn.mysql.com/ //下載mysql
#yum -y install libtermcap-devel //安裝libtermcap-devel
#tar -zxvf mysql-5.0.96.tar.gz //解壓mysql
#cd mysql-5.0.96 //進入mysql的解壓目錄
#./configure --prefix=/usr/local/mysql '--with-extra-charsets=all' '--enable-assembler' --with-charset=utf8 //編譯mysql

//210.14.154.7編譯參數如下
./configure --prefix=/usr/local/mysql --with-mysqld-user=mysql --without-debug --with-big-tables --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=all --enable-static --enable-thread-safe-client --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --enable-assembler --without-ndb-debug

//117.79.226.114編譯參數
./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/var --with-comment=Source --with-server-suffix=-hx10 --with-mysqld-user=mysql --without-debug --with-big-tables --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=all --with-pthread --enable-static --enable-thread-safe-client --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --enable-assembler --without-ndb-debug

#make && make install //安裝mysql
#cd support-files/ //進入mysql可執行程序的目錄
#ls //查看文件
#cp mysql.server /etc/init.d/ //復制mysql可執行程序到指定目錄
#chmod +x /etc/init.d/mysql.server //設置mysql的程序可執行權限
#ls //查看文件
#cp my-huge.cnf /etc/my.cnf //復制mysql的配置文件到指定目錄并且修改名字
#y //同意覆蓋mysql的配置文件
#cd ../scripts/ //進入到生成數據庫文件目錄
#ls //查看目錄文件
#./mysql_install_db //生成數據庫文件
#/etc/init.d/mysql.server stop //停止mysql
#vim /etc/my.cnf
1、在[client]這個模塊下增加:default-character-set=utf8 //設置mysql的編碼
2、在[mysqld]這個模塊下增加:
default-character-set=utf8 //設置mysql的編碼
init_connect='SET NAMES utf8' //設置mysql的編碼
#cd /usr/local/mysql //進入到mysql的安裝目錄
#cp -r var/ /home/var //將mysql的數據存儲目錄文件復制到磁盤空間較大的目錄
#mv var/ var.bak //修改mysql的數據存儲目錄
#ln -s /home/var var //將mysql的數據存儲目錄軟鏈接的到磁盤空間較大的目錄
#chown -R mysql:mysql /home/var/ //設置mysql的數據存儲目錄的權限
#chown -R mysql:mysql /usr/local/mysql //設置mysql的權限
#/etc/init.d/mysql.server start //啟動mysql
進入mysql,查看mysql編碼:
#mysql -p
輸入密碼,顯示如下內容即為正常。
mysql>show variables like 'character%'; //查看mysql的編碼
+--------------------------+----------------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql/share/mysql/charsets/ |
+--------------------------+----------------------------------------+
8 rows in set (0.00 sec)
mysql>

ps:如果未修改編碼,在倒入數據之前(source)需要執行set names utf8;也可以解決mysql導入中文數據亂碼問題。


php安裝:
#yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel glibc glibc-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers //安裝php說需要的庫
#yum -y install libxml2-devel //安裝libxml2-devel
#yum -y install libcurl-devel //安裝libcurl-devel
#yum -y install libjpeg-devel //安裝libjpeg-devel
#yum -y install libpng-devel //安裝libpng-devel
#yum -y install freetype-devel //安裝freetype-devel
#wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz //下載libmcrypt
#tar zxf libmcrypt-2.5.7.tar.gz //解壓libmcrypt
#cd libmcrypt-2.5.7 //進入libmcrypt的解壓目錄
#ls //查看文件
#./configure //編譯libmcrypt
#make && make install //安裝libmcrypt
#cd /home/tools/ //進入軟件存儲目錄
#tar zxvf php-5.2.14.tar.gz //解壓php
#gzip -cd php-5.2.14-fpm-0.5.14.diff.gz | patch -d php-5.2.14 -p1 //讓php支持php-fpm
#cd php-5.2.14 //進入php解壓目錄
#./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql/ --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-bcmath --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-iconv-dir --with-mhash --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir --enable-xml --with-mcrypt --disable-rpath --enable-discard-path --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --with-gd --enable-gd-native-ttf --with-mhash --enable-pcntl --enable-sockets --enable-zip --enable-soap --disable-cli //編輯php
(編譯的時候會報錯:
1.如果提示:"configure: error: libjpeg.(a|so) not found"錯誤
#whereis libjpeg
#cp -frp /usr/lib64/libjpeg.* /usr/lib/
2.注意過程中提示:"Configure: error: libpng.(also) not found."錯誤,解決辦法和上面的一樣.
#whereis libjpeg
#cp -frp /usr/lib64/libpng* /usr/lib/
3、注意過程中提示:configure: error: Please reinstall libmhash - I cannot find mhash.h
#yum -y install mhash-devel //安裝mhash-devel
#make && make install //安裝php
#cp php.ini-dist /usr/local/php/etc/php.ini //復制php的配置文件到指定目錄并且改名

安裝memcache
#tar zxvf memcache-2.2.5.tgz //解壓memcache
#cd memcache-2.2.5 //進入memcache解壓目錄
#/usr/local/php/bin/phpize //讓php支持memcache
#./configure --with-php-config=/usr/local/php/bin/php-config //編譯memcache
#make && make install //安裝memcache

安裝libevent
#yum -y install libevent libevent-devel //安裝libevent和libevent-devel

安裝memcached
#cd .. //進入軟件下載目錄
#tar zxvf memcached-1.4.4.tar.gz //解壓memcached
#cd memcached-1.4.4 //進入memcached的解壓目錄
#./configure --prefix=/usr/local/memcached //編譯memcached
#make && make install //安裝memcached
#cd .. //進入軟件下載目錄

安裝eaccelerator
#wget http://acelnmp.googlecode.com/files/eaccelerator-0.9.6.1.tar.bz2 //下載eaccelerator
#tar jxvf eaccelerator-0.9.6.1.tar.bz2 //解壓eaccelerator
#cd eaccelerator-0.9.6.1/ //進入eaccelerator解壓目錄
#/usr/local/php/bin/phpize //讓php支持eaccelerator
#./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php/bin/php-config //編譯eaccelerator
#make && make install //安裝eaccelerator
#cd .. //進入軟件下載目錄


安裝PDO_MYSQL
#tar zxvf PDO_MYSQL-1.0.2.tgz //解壓PDO_MYSQL
#cd PDO_MYSQL-1.0.2 //進入PDO_MYSQL的解壓目錄
#/usr/local/php/bin/phpize //讓php支持PDO_MYSQL
#./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql/ //編譯PDO_MYSQL
#make && make install //安裝PDO_MYSQL

修改php.ini文件
#vim /usr/local/php/etc/php.ini
手工修改:查找/usr/local/php/etc/php.ini中的extension_dir = "./"
修改為extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"
并在此行后增加以下幾行,然后保存:
extension = "memcache.so" //讓php支持緩存
extension = "pdo_mysql.so" //讓php可以連接mysql


配置eAccelerator加速PHP
#mkdir -p /home/logs/eaccelerator_cache
#vim /usr/local/php/etc/php.ini //增加php的加速模塊
在文件最底部添加:
[eaccelerator]
extension="eaccelerator.so"
eaccelerator.shm_size="64"
eaccelerator.cache_dir="/home/logs/eaccelerator_cache"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="3600"
eaccelerator.shm_prune_period="3600"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"


#vim /usr/local/php/etc/php-fpm.conf //修改php-fpm配置文件
修改參數:
user:www
group:www
max_children:128
StartServers:20
MinSpareServers:5
MaxSpareServers:35
rlimit_files:65535
max_requests:1024


啟動php-fpm
#/usr/local/php/sbin/php-fpm start
報錯:
Starting php_fpm eAccelerator: Could not allocate 67108864 bytes, the maximum size the kernel allows is 33554432 bytes. Lower the amount of memory request or increase the limit in /proc/sys/kernel/shmmax.
PHP Warning: [eAccelerator] Can not create shared memory area in Unknown on line 0
PHP Fatal error: Unable to start eAccelerator module in Unknown on line 0
failed
#說明
php.ini中設置的eAccelerator,eaccelerator.shm_size=”64″,解釋:eaccelerator可使用的共享內存大小(單位為MB),即64M
在Linux下,單個進程的最大內存使用量受/proc/sys/kernel/shmmax中設置的數字限制(單位為字節) /proc/sys/kernel/shmmax = 33554432 (32M)
臨時更改該值:
echo 128000000 > /proc/sys/kernel/shmmax
或者
vi /etc/sysctl.conf
kernel.shmmax = 128000000

syscatl -p

報錯:
Starting php_fpm PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/ eaccelerator.so' - /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/ eaccelerator.so: cannot open shared object file: No such file or directory in Unknown on line 0
是因為php.ini文件中
extension=" eaccelerator.so"
eaccelerator.cache_dir="/home/logs /eaccelerator_cache"
這兩個地方有空格

Starting php_fpm /usr/local/php/bin/php-cgi: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
failed

#cd /usr/local/mysql/lib/
#cp libmysqlclient.so.18 /usr/local/lib

轉載于:https://www.cnblogs.com/xiaoping-2014/p/4360537.html

總結

以上是生活随笔為你收集整理的nginx+mysql+php的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。