本文屬於動手搭建PHP開發環境的一部分,更多點擊鏈接查看。
本文以centos6為例。命令部分均省略sudo
命令。
安裝PHP
下載
http://cn2.php.net/distributions/php-5.6.22.tar.bz2
http://cn2.php.net/distributions/php-7.0.7.tar.bz2
更新yum源
這里將Centos的yum源更換為國內的阿里雲源。yum安裝正常的可以跳過本步驟。
阿里雲Linux安裝鏡像源地址:
http://mirrors.aliyun.com/
1、備份你的原鏡像文件,以免出錯后可以恢復:
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2、下載新的CentOS-Base.repo 到/etc/yum.repos.d/
## CentOS 5
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo
## CentOS 6
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
## CentOS 7
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
3、生成緩存
yum clean all
yum makecache
安裝依賴
yum install -y gcc gcc-c++ make cmake bison autoconf wget lrzsz
yum install -y libtool libtool-ltdl-devel
yum install -y freetype-devel libjpeg.x86_64 libjpeg-devel libpng-devel gd-devel
yum install -y python-devel patch sudo
yum install -y openssl* openssl openssl-devel ncurses-devel
yum install -y bzip* bzip2 unzip zlib-devel
yum install -y libevent*
yum install -y libxml* libxml2-devel
yum install -y libcurl* curl-devel
yum install -y readline-devel
需要編譯libmcrypt、mhash、mcrypt庫(下載見文末附件)
tar zxvf /libmcrypt-2.5.8.tar.gz \
&& cd /libmcrypt-2.5.8 && ./configure && make && make install && cd - / && rm -rf /libmcrypt* \
&& tar zxvf /mhash-0.9.9.9.tar.gz && cd mhash-0.9.9.9 && ./configure && make && make install && cd - / && rm -rf /mhash* \
&& tar zxvf /mcrypt-2.6.8.tar.gz && cd mcrypt-2.6.8 && LD_LIBRARY_PATH=/usr/local/lib ./configure && make && make install && cd - / && rm -rf /mcrypt*
開始安裝
使用./configure --help
查看編譯支持的選項。如果寫了不支持的選項,如php7里不支持--with-mysql=mysqlnd
會提示:
configure: WARNING: unrecognized options: --with-mysql
wget http://cn2.php.net/distributions/php-7.0.7.tar.bz2
tar jxvf php-7.0.7.tar.bz2
cd php-7.0.7
$ ./configure --prefix=/usr/local/php --with-config-file-scan-dir=/usr/local/php/etc/ --enable-inline-optimization --enable-opcache --enable-session --enable-fpm --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-pdo-sqlite --with-sqlite3 --with-gettext --enable-mbregex --enable-mbstring --enable-xml --with-iconv --with-mcrypt --with-mhash --with-openssl --enable-bcmath --enable-soap --with-xmlrpc --with-libxml-dir --enable-pcntl --enable-shmop --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-sockets --with-curl --with-curlwrappers --with-zlib --enable-zip --with-bz2 --with-gd --enable-gd-native-ttf --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-readline
$ make
$ make install
可選項:
--with-fpm-user=www --with-fpm-group=www
這里面開啟了很多擴展。如果這時候忘了開啟,以后還能加上嗎?答案是可以的。以后只需要進入源碼的ext
目錄,例如忘了pdo_mysql
,進入ext/pdo_mysql
,使用phpize工具,像安裝普通擴展一樣即可生成pdo_mysql.so。
關於:--enable-safe-mode
開啟的話php可以執行一下系統函數,建議關閉(可搜索受此函數影響的php函數)
#如果只需要配置某一個目錄可以執行則 設置為on並指定 safe_mode_exec_dir=string目錄來執行系統函數。
#本特性已自 PHP 5.3.0 起廢棄並將自 PHP 5.4.0 起移除。
safe_mode = off
php7編譯不用加這個配置。
編譯比較耗內存和CPU。等待半小時左右,編譯完成:
Build complete.
Don't forget to run 'make test'.
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/
Installing PHP CLI binary: /usr/local/php/bin/
Installing PHP CLI man page: /usr/local/php/php/man/man1/
Installing PHP FPM binary: /usr/local/php/sbin/
Installing PHP FPM config: /usr/local/php/etc/
Installing PHP FPM man page: /usr/local/php/php/man/man8/
Installing PHP FPM status page: /usr/local/php/php/php/fpm/
Installing phpdbg binary: /usr/local/php/bin/
Installing phpdbg man page: /usr/local/php/php/man/man1/
Installing PHP CGI binary: /usr/local/php/bin/
Installing PHP CGI man page: /usr/local/php/php/man/man1/
Installing build environment: /usr/local/php/lib/php/build/
Installing header files: /usr/local/php/include/php/
Installing helper programs: /usr/local/php/bin/
program: phpize
program: php-config
Installing man pages: /usr/local/php/php/man/man1/
page: phpize.1
page: php-config.1
Installing PEAR environment: /usr/local/php/lib/php/
[PEAR] Archive_Tar - installed: 1.4.0
[PEAR] Console_Getopt - installed: 1.4.1
[PEAR] Structures_Graph- installed: 1.1.1
[PEAR] XML_Util - installed: 1.3.0
[PEAR] PEAR - installed: 1.10.1
Wrote PEAR system config file at: /usr/local/php/etc/pear.conf
You may want to add: /usr/local/php/lib/php to your php.ini include_path
/php-7.0.7/build/shtool install -c ext/phar/phar.phar /usr/local/php/bin
ln -s -f phar.phar /usr/local/php/bin/phar
Installing PDO headers: /usr/local/php/include/php/ext/pdo/
[root@e8ed9b00e80c php-7.0.7]# /usr/local/php/bin/php -m
[PHP Modules]
bcmath
bz2
Core
ctype
curl
date
dom
fileinfo
filter
gd
gettext
hash
iconv
json
libxml
mbstring
mcrypt
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tokenizer
xml
xmlreader
xmlrpc
xmlwriter
zip
zlib
[Zend Modules]
配置文件
需要從安裝包里復制php.ini、php-fpm.conf到安裝目錄:
$ cp php-7.0.7/php.ini* /usr/local/php/etc/
$ cd /usr/local/php/etc/
$ cp php.ini-production php.ini
$ cp php-fpm.conf.default php-fpm.conf
$ cp php-fpm.d/www.conf.default php-fpm.d/www.conf
$ ls
pear.conf php-fpm.conf.default php.ini-development php.ini-production
配置php.ini
# 不顯示錯誤,默認
display_errors = Off
# 在關閉display_errors后開啟PHP錯誤日志(路徑在php-fpm.conf中配置),默認
log_errors = On
# 字符集,默認
default_charset = "UTF-8"
# 文件上傳大小,默認值太小,建議修改10M
upload_max_filesize = 2M
# Maximum size of POST data that PHP will accept. 表單最大值,默認是8M,如果表單含有多圖上傳,大小可能不夠。超過該大小后台收不到 表單數據
post_max_size = 8M
# 設置PHP的擴展庫路徑,,默認被注釋了。
extension_dir = "/usr/local/php7/lib/php/extensions/no-debug-non-zts-20151012/"
# 如果不設置extension_dir,也可以直接寫絕對位置:
# extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/redis.so
# 設置PHP的時區
date.timezone = PRC
# 開啟opcache,默認是0
[opcache]
; Determines if Zend OPCache is enabled
opcache.enable=1
配置php-fpm.conf
; 去掉里分號,方便以后重啟。建議修改
; Default Value: none
; 下面的值最終目錄是/usr/local/php/var/run/php-fpm.pid
; 開啟后可以平滑重啟php-fpm
pid = run/php-fpm.pid
; 設置錯誤日志的路徑,可以默認值
; Note: the default prefix is /usr/local/php/var
; Default Value: log/php-fpm.log, 即/usr/local/php/var/log/php-fpm.log
error_log = /var/log/php-fpm/error.log
; Log等級,可以默認值
; Possible Values: alert, error, warning, notice, debug
; Default Value: notice
log_level = notice
; 后台運行,默認yes,可以默認值
; Default Value: yes
;daemonize = yes
; 引入www.conf文件中的配置,可以默認值
include=/usr/local/php/etc/php-fpm.d/*.conf
配置www.conf(在php-fpm.d目錄下)
www.conf這是php-fpm進程服務的擴展配置文件:
; 設置用戶和用戶組,默認都是nobody。可以默認值
user = nginx
group = nginx
; 設置PHP監聽
; 下面是默認值,不建議使用。可以默認值
; listen = 127.0.0.1:9000
; 根據nginx.conf中的配置fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
listen = /var/run/php-fpm/php-fpm.sock
######開啟慢日志。可以默認值
slowlog = /var/log/php-fpm/$pool-slow.log
request_slowlog_timeout = 10s
保存配置文件后,檢驗配置是否正確的方法為:
/usr/local/php/sbin/php-fpm -t
如果出現諸如 test is successful
字樣,說明配置沒有問題。另外該命令也可以讓我們知道php-fpm的配置文件在哪。
建立軟連接:
ln -sf /usr/local/php/sbin/php-fpm /usr/bin/
ln -sf /usr/local/php/bin/php /usr/bin/
ln -sf /usr/local/php/bin/phpize /usr/bin/
ln -sf /usr/local/php/bin/php-config /usr/bin/
ln -sf /usr/local/php/bin/php-cig /usr/bin/
或者將php編譯生成的bin
目錄添加到當前Linux系統的環境變量中:
echo -e '\nexport PATH=/usr/local/php/bin:/usr/local/php/sbin:$PATH\n' >> /etc/profile && source /etc/profile
啟動php-fpm
/usr/local/php/sbin/php-fpm
如果提示沒有www用戶(www.conf里填寫了www而不是nobody),則新增:
useradd www
chown -R www:www /www
檢測是否啟動:
ps aux |grep php-fpm # 另外該命令也可以讓我們知道fpm的配置文件在哪。
netstat -ant |grep 9000
查看php-fpm進程數:
ps aux | grep -c php-fpm
php-fpm操作匯總:
/usr/local/php/sbin/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` #php-fpm平滑重啟
重啟方法二:
killall php-fpm
/usr/local/php/sbin/php-fpm &
如果無法平滑啟動,那就終止進程id:
ps aux | grep php-fpm
kill -9 1210 #1210指php-fpm進程id
安裝Nginx
nginx news
http://nginx.org/
http://nginx.org/download/nginx-1.11.1.tar.gz
依賴:
# 為了支持rewrite功能,我們需要安裝pcre
yum install pcre-devel
# 需要ssl的支持,如果不需要ssl支持,請跳過這一步
# yum install openssl*
# gzip 類庫安裝,按需安裝
# yum install zlib zlib-devel
配置編譯參數
$ tar -zxvf nginx-1.11.1.tar.gz
$ cd nginx-1.11.1
$ ./configure \
--prefix=/usr/local/nginx \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-http_realip_module \
--with-http_sub_module \
--with-http_gzip_static_module \
--with-pcre
配置ok:
Configuration summary
+ using system PCRE library
+ using system OpenSSL library
+ md5: using OpenSSL library
+ sha1: using OpenSSL library
+ using system zlib library
nginx path prefix: "/usr/local/nginx"
nginx binary file: "/usr/local/nginx/sbin/nginx"
nginx modules path: "/usr/local/nginx/modules"
nginx configuration prefix: "/usr/local/nginx/conf"
nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
nginx pid file: "/usr/local/nginx/logs/nginx.pid"
nginx error log file: "/usr/local/nginx/logs/error.log"
nginx http access log file: "/usr/local/nginx/logs/access.log"
nginx http client request body temporary files: "client_body_temp"
nginx http proxy temporary files: "proxy_temp"
nginx http fastcgi temporary files: "fastcgi_temp"
nginx http uwsgi temporary files: "uwsgi_temp"
nginx http scgi temporary files: "scgi_temp"
編譯安裝nginx
make
make install
設置軟連接:
ln -sf /usr/local/nginx/sbin/nginx /usr/sbin
檢測nginx:
nginx -t
顯示:
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
成功了。我們重新配置下nginx.conf:
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
# 解決虛擬主機名字過長 http://www.jb51.net/article/26412.htm
server_names_hash_bucket_size 128;
#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 on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
autoindex on;# 顯示目錄
autoindex_exact_size on;# 顯示文件大小
autoindex_localtime on;# 顯示文件時間
include vhosts/*.conf;
}
配置localhost:
vhosts/localhost.conf
server {
listen 80;
server_name localhost;
#charset utf-8;
#access_log logs/host.access.log main;
location / {
root /www/www/;
index index.php index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root /www/www/;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
啟動nginx:
/usr/local/nginx/sbin/nginx
# 或者
nginx
重啟:
/usr/local/nginx/sbin/nginx -s reload
# 或者
nginx -s reload
停止:
/usr/local/nginx/sbin/nginx -s stop
# 或者
nginx -s stop
如果提示80端口被占用了,可以使用ps aunx | grep 80
查看。一般是apache占用了。可以使用:
chkconfig --list
chkconfig nginx on
service apache off
禁止apache啟動並關閉apache服務。
安裝擴展
安裝swoole
Swoole: PHP的異步、並行、高性能網絡通信引擎
http://www.swoole.com/
wget https://github.com/swoole/swoole-src/archive/swoole-1.8.5-stable.zip
unzip swoole-1.8.5-stable.zip
cd swoole-1.8.5-stable
phpize
./configure
make && make install
安裝redis
服務器端:
http://download.redis.io/releases/redis-3.2.0.tar.gz
$ wget http://download.redis.io/releases/redis-3.2.0.tar.gz
$ tar xzf redis-3.2.0.tar.gz
$ cd redis-3.2.0
$ make
默認編譯完后在當前目錄的src目錄下。可以復制可執行文件到其他地方:
mkdir /usr/local/redis
cd src
cp redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-sentinel redis-server redis-trib.rb /usr/local/redis
復制配置文件
$ cd redis-3.2.0
$ cp redis.conf /usr/local/redis/
或者安裝的時候指定位置:
make PREFIX=/usr/local/redis install
將Redis的命令所在目錄添加到系統參數PATH中:
修改profile文件:
vi /etc/profile
在最后行追加:
export PATH="$PATH:/usr/local/redis/bin"
然后馬上應用這個文件:
. /etc/profile
這樣就可以直接調用redis-cli的命令了
客戶端:
2.0安裝
wget https://github.com/nicolasff/phpredis/archive/2.2.4.tar.gz
tar -zxvf 2.2.4
cd phpredis-2.2.4/
phpize
./configure
make && make install
3.0安裝
phpredis/phpredis: A PHP extension for Redis
https://github.com/phpredis/phpredis
需要先安裝igbinary:
PECL :: Package :: igbinary
http://pecl.php.net/package/igbinary
wget http://pecl.php.net/get/igbinary-1.2.1.tgz
tar zxvf igbinary-1.2.1.tgz
cd igbinary-1.2.1
phpize
./configure
make && make install
wget https://github.com/phpredis/phpredis/archive/3.0.0-rc1.zip
unzip 3.0.0-rc1
cd phpredis-3.0.0-rc1/
phpize
./configure [--enable-redis-igbinary]
make && make install
安裝memcache
pecl install memcache
php7安裝有兼容問題,從github上搜到了一個可用的:
git clone https://github.com/websupport-sk/pecl-memcache memcache
cd memcache
phpize
./confihure
make
make install
安裝memcached:
pecl install memcached
需要先安裝:
yum install libmemcached-dev
使用yum/apt-get安裝php
如果只是想快速搭建開發環境,可以使用yum進行安裝:
yum install php-cli php-devel php-common php-pear php-gd php-fpm php-mbstring php-mcrypt php-mysql php-sqlite3 php-pdo php-memcache
使用yum search php
可以查詢到可以安裝哪些php相關的擴展。
如果是ubuntu:
sudo apt-get install php7.2-cli php7.2-dev php-pear php7.2-common php7.2-pdo php7.2-curl php7.2-gd php-redis php-xdebug php-memcache php7.2-fpm php7.2-xml composer
php-pear包含pecl,php-dev包含phpize,pecl依賴phpize。
需要注意的是,使用yum安裝的php,其配置文件位於:
/etc/php.ini
/etc/php-fpm.conf
/etc/php-fpm.d/www.conf
/etc/php.d/mysqli.ini
/etc/php.d/pdo.ini
ubuntu與centos不一樣,會分開存放php.ini到/etc/php7/cli/php.ini
和/etc/php7/fpm/php.ini
里。這個需要注意。
yum無法安裝的擴展,可以使用pecl安裝。由於pecl是需要編譯的,所以需要先安裝編譯器:
yum install -y gcc gcc-c++ make cmake bison autoconf
然后:
pecl install swoole
pecl install redis
pecl安裝擴展完成后會提示添加so文件到php.ini。示例:
Build process completed successfully
Installing '/usr/lib64/php/modules/swoole.so'
install ok: channel://pecl.php.net/swoole-1.9.11
configuration option "php_ini" is not set to php.ini location
You should add "extension=swoole.so" to php.ini
添加示例:
[swoole]
extension = /usr/lib64/php/modules/swoole.so
使用php -m
可以查看安裝的擴展。
信號管理
不重載配置啟動新/舊工作進程
kill -HUP 舊/新版主進程號
從容關閉舊/新進程
kill -QUIT 舊/新主進程號
如果此時報錯,提示還有進程沒有結束就用下面命令先關閉舊/新工作進程,再關閉主進程號:
kill -TERM 舊/新工作進程號
升級、添加或刪除模塊時,我們需要停掉服務器
kill -USR2 舊版程序的主進程號或進程文件名
MySQL
如果存在舊版本,需要先卸載舊版本。
使用下面的命令檢查是否安裝有MySQL Server
rpm -qa | grep mysql
有的話通過下面的命令來卸載掉
rpm -e mysql //普通刪除模式
rpm -e --nodeps mysql // 強力刪除模式,如果使用上面命令刪除時,提示有依賴的其它文件,則用該命令可以對其進行強力刪除
安裝
安裝編譯代碼需要的包
yum -y install make gcc-c++ cmake bison-devel ncurses-devel
下載MySQL 5.6.14:
wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.14.tar.gz
tar xvf mysql-5.6.14.tar.gz
cd mysql-5.6.14
編譯安裝
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci\
-DMYSQL_USER=mysql
make && make install
編譯的參數可以參考http://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.html。
整個過程需要30分鍾左右……漫長的等待
配置MySQL
設置權限
使用下面的命令查看是否有mysql用戶及用戶組
cat /etc/passwd 查看用戶列表
cat /etc/group 查看用戶組列表
如果沒有就創建
groupadd mysql
useradd -g mysql mysql
修改/usr/local/mysql
權限
chown -R mysql:mysql /usr/local/mysql
修改/usr/local/mysql
權限
初始化配置
進入安裝路徑
cd /usr/local/mysql
進入安裝路徑,執行初始化配置腳本,創建系統自帶的數據庫和表
scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
注:在啟動MySQL服務時,會按照一定次序搜索my.cnf,先在/etc目錄下找,找不到則會搜索"$basedir/my.cnf",在本例中就是 /usr/local/mysql/my.cnf,這是新版MySQL的配置文件的默認位置!
注意:在CentOS 6.4版操作系統的最小安裝完成后,在/etc目錄下會存在一個my.cnf,需要將此文件更名為其他的名字,如:/etc/my.cnf.bak,否則,該文件會干擾源碼安裝的MySQL的正確配置,造成無法啟動。
在使用"yum update"更新系統后,需要檢查下/etc目錄下是否會多出一個my.cnf,如果多出,將它重命名成別的。否則,MySQL將使用這個配置文件啟動,可能造成無法正常啟動等問題。
啟動MySQL
添加服務,拷貝服務腳本到init.d目錄,並設置開機啟動
cp support-files/mysql.server /etc/init.d/mysql
chkconfig mysql on
service mysql start --啟動MySQL
配置用戶
MySQL啟動成功后,root默認沒有密碼,我們需要設置root密碼。
設置之前,我們需要先設置PATH,要不不能直接調用mysql
修改/etc/profile文件,在文件末尾添加
PATH=/usr/local/mysql/bin:$PATH
export PATH
關閉文件,運行下面的命令,讓配置立即生效
source /etc/profile
現在,我們可以在終端內直接輸入mysql進入,mysql的環境了
執行下面的命令修改root密碼
mysql -uroot
mysql> SET PASSWORD = PASSWORD('123456');
若要設置root用戶可以遠程訪問,執行
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'172.16.%' IDENTIFIED BY 'password' WITH GRANT OPTION;
紅色的password為遠程訪問時,root用戶的密碼,可以和本地不同。
配置防火牆
防火牆的3306端口默認沒有開啟,若要遠程訪問,需要開啟這個端口
打開/etc/sysconfig/iptables
在“-A INPUT –m state --state NEW –m tcp –p –dport 22 –j ACCEPT”,下添加:
-A INPUT -m state --state NEW -m tcp -p -dport 3306 -j ACCEPT
然后保存,並關閉該文件,在終端內運行下面的命令,刷新防火牆配置:
service iptables restart
OK,一切配置完畢,你可以訪問你的MySQL了~
注意:
CentOS 7中默認使用Firewalld做防火牆,所以修改iptables后,在重啟系統后,根本不管用。
Firewalld中添加端口方法如下:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
常見問題
1、編譯PHP提示easy.h should be in <curl-dir>/include/curl/
如果是centos:
yum install curl curl-devel
如果是ubuntu:
apt-get install libcurl4-gnutls-dev
如果還是沒有解決,直接編譯curl:
wget http://curl.haxx.se/download/curl-7.37.0.tar.gz
tar zxvf curl-7.37.0.tar.gz
cd curl-7.37.0.
./configure --prefix=/usr/local --enable-shared
make
make install
更多資料
1、linux下為已經編譯好的php環境添加mysql擴展
https://ask.hellobi.com/blog/liangyong/69
2、http://blog.csdn.net/Lincoln_zsl/article/details/35557387
3、 https://zhangge.net/5073.html
附件
相關源碼包
鏈接: http://pan.baidu.com/s/1kUQTlFD 密碼: ajzk