mediawiki, nginx, PHP, PostgreSQL, zhparser on CentOS 6.4 x64

本文涉及的产品
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核8GB 50GB
简介:
本文介绍一下如何部署wiki网站.
目前wikimedia网站的架构 : 
mediawiki, nginx, PHP, PostgreSQL, zhparser on CentOS 6.4 x64 - 德哥@Digoal - PostgreSQL research
 
本文测试环境 : 
CentOS 6.x x64
mediawiki 1.23.1
php 5.5.14
nginx 1.6.0
PostgreSQL 9.3.x
zhparser 中文分词
AI 代码解读


mediawiki, nginx, PHP, PostgreSQL on CentOS 6.4 x64 - 德哥@Digoal - PostgreSQL research
选择mediawiki 的 lts版本. 
# wget http://releases.wikimedia.org/mediawiki/1.23/mediawiki-1.23.1.tar.gz
# tar -zxvf mediawiki-1.23.1.tar.gz 
# mv mediawiki-1.23.1 /opt/site/mediawiki
AI 代码解读

配置数据库 : 
[root@db-172-16-3-150 soft_bak]# su - pg93
pg93@db-172-16-3-150-> cd /ssd4/pg93
pg93@db-172-16-3-150-> mkdir tbs_mediawiki
pg93@db-172-16-3-150-> psql
psql (9.3.3)
Type "help" for help.

digoal=# create role mediawiki nosuperuser login encrypted password 'mediawiki';
CREATE ROLE
digoal=# create tablespace tbs_mediawiki location '/ssd4/pg93/tbs_mediawiki';
CREATE TABLESPACE
digoal=# create database mediawiki with template template0 encoding 'UTF8' tablespace tbs_mediawiki owner mediawiki;
CREATE DATABASE
digoal=# \c mediawiki mediawiki
You are now connected to database "mediawiki" as user "mediawiki".
mediawiki=> create schema mediawiki;
CREATE SCHEMA
AI 代码解读

配置PostgreSQL 中文全文检索功能
# wget http://www.xunsearch.com/site/downfile?file=xunsearch-full-latest.tar.bz2
# tar -jxvf xunsearch-full-latest.tar.bz2
[root@db-172-16-3-150 soft_bak]# cd xunsearch-full-1.4.8/
[root@db-172-16-3-150 xunsearch-full-1.4.8]# ll
total 20
drwxr-xr-x 2 pg90 games  4096 Jul 14 09:47 packages
-rw-r--r-- 1 pg90 games  2937 Jul  2  2012 README.md
-rwxr-xr-x 1 pg90 games 11069 Aug 27  2013 setup.sh
[root@db-172-16-3-150 xunsearch-full-1.4.8]# cd packages/
[root@db-172-16-3-150 packages]# ll
total 9744
-rw-r--r-- 1 pg90 games  694445 Aug 27  2013 libevent-2.0.21-stable.tar.bz2
-rw-r--r-- 1 pg90 games  160888 Sep 21  2011 libuuid-1.0.0.tar.bz2
-rw-r--r-- 1 pg90 games      42 Sep  6  2011 README
-rw-r--r-- 1 pg90 games  434924 Aug 23  2013 scws-1.2.3-dev.tar.bz2
-rw-r--r-- 1 pg90 games 4090111 Dec 30  2010 scws-dict-chs-utf8.tar.bz2
-rw-r--r-- 1 pg90 games 3476028 Aug 16  2013 xapian-core-scws-1.2.15.tar.bz2
-rw-r--r-- 1 pg90 games  676474 Dec 11  2013 xunsearch-1.4.8.tar.bz2
-rw-r--r-- 1 pg90 games  423087 Dec 11  2013 xunsearch-sdk-1.4.8.zip
[root@db-172-16-3-150 packages]# tar -jxvf scws-1.2.3-dev.tar.bz2
[root@db-172-16-3-150 packages]# cd scws-1.2.3-dev
[root@db-172-16-3-150 scws-1.2.3-dev]# ./configure --prefix=/opt/scws-1.2.3-dev && make && make install
[root@db-172-16-3-150 scws-1.2.3-dev]# cd /opt/soft_bak/
[root@db-172-16-3-150 soft_bak]# git clone https://github.com/amutu/zhparser.git
[root@db-172-16-3-150 soft_bak]# cd zhparser/
[root@db-172-16-3-150 zhparser]# export PATH=/home/pg93/pgsql/bin:$PATH
[root@db-172-16-3-150 zhparser]# which pg_config
/home/pg93/pgsql/bin/pg_config
# SCWS_HOME=/opt/scws-1.2.3-dev make
# make install
[root@db-172-16-3-150 zhparser]# su - pg93
pg93@db-172-16-3-150-> psql mediawiki postgres
psql (9.3.3)
Type "help" for help.

mediawiki=# create extension zhparser;
CREATE EXTENSION
mediawiki=# select * from pg_ts_parser ;
 prsname  | prsnamespace |  prsstart   |    prstoken     |  prsend   |  prsheadline  |  prslextype   
----------+--------------+-------------+-----------------+-----------+---------------+---------------
 default  |           11 | prsd_start  | prsd_nexttoken  | prsd_end  | prsd_headline | prsd_lextype
 zhparser |         2200 | zhprs_start | zhprs_getlexeme | zhprs_end | prsd_headline | zhprs_lextype
(2 rows)

mediawiki=# CREATE TEXT SEARCH CONFIGURATION testzhcfg (PARSER = zhparser);
CREATE TEXT SEARCH CONFIGURATION
mediawiki=# select * from pg_ts_config where cfgname='testzhcfg';
  cfgname  | cfgnamespace | cfgowner | cfgparser 
-----------+--------------+----------+-----------
 testzhcfg |         2200 |       10 |     37586
(1 row)
AI 代码解读



mediawiki=# ALTER TEXT SEARCH CONFIGURATION testzhcfg ADD MAPPING FOR n,v,a,i,e,l WITH simple;
ALTER TEXT SEARCH CONFIGURATION
mediawiki=# select * from pg_ts_config_map where mapcfg=(select oid from pg_ts_config where cfgname='testzhcfg');
 mapcfg | maptokentype | mapseqno | mapdict 
--------+--------------+----------+---------
  37587 |          110 |        1 |    3765
  37587 |          118 |        1 |    3765
  37587 |           97 |        1 |    3765
  37587 |          105 |        1 |    3765
  37587 |          101 |        1 |    3765
  37587 |          108 |        1 |    3765
(6 rows)

mediawiki=# SELECT * FROM ts_parse('zhparser', 'hello world! 2010年保障房建设在全国范围内获全面启动,从中央到地方纷纷加大 了 保 障  房 的 建 设 和 投 入 力 度 。2011年,保障房进入了更大规模的建设阶段。住房城乡建设部党组书记、部长姜伟新去年底在全国住房城乡建设工作 会议上表示,要继续推进保障性安居工程建设。');
 tokid |  token   
-------+----------
   101 | hello
   101 | world
   117 | !
   101 | 2010
   113 | 年
   118 | 保障
   110 | 房建
   118 | 设在
   110 | 全国
   110 | 范围
   102 | 内
   118 | 获
    97 | 全面
   118 | 启动
   117 | ,
   110 | 从中
   118 | 央
   118 | 到
   110 | 地方
   100 | 纷纷
   118 | 加大
   118 | 了
   118 | 保
   110 | 障
   110 | 房
   117 | 的
   118 | 建
   118 | 设
    99 | 和
   118 | 投
   118 | 入
   110 | 力
   107 | 度
   117 | 。
   101 | 2011
   113 | 年
   117 | ,
   118 | 保障
   110 | 房
   118 | 进入
   118 | 了
   100 | 更
   110 | 大规模
   117 | 的
   118 | 建设
   110 | 阶段
   117 | 。
   110 | 住房
   110 | 城乡建设
   110 | 部党组
   110 | 书记
   117 | 、
   110 | 部长
   110 | 姜伟新
   116 | 去年底
   112 | 在
   110 | 全国
   110 | 住房
   110 | 城乡建设
   118 | 工作
   110 | 会议
   110 | 上表
   118 | 示
   117 | ,
   118 | 要
   118 | 继续
   118 | 推进
   110 | 保障性
   118 | 安居
   110 | 工程建设
   117 | 。
(71 rows)

mediawiki=# SELECT to_tsvector('testzhcfg','“今年保障房新开工数量虽然有所下调,但实际的年度在建规模以及竣工规模会超以往年份,相对应的对资金的需求也会创历史纪录。”陈国强说。在他看来,与2011年相比,2012年的保障房建设在资金配套上的压力将更为严峻。');
                                                                                                                                    
                          to_tsvector                                                                                               
                                                               
------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------
 '2011':27 '2012':29 '上':35 '下调':7 '严峻':37 '会':14 '会创':20 '保障':1,30 '历史':21 '压力':36 '国强':24 '在建':10 '实际':8 '对应
':17 '年份':16 '年度':9 '开工':4 '房':2 '房建':31 '数量':5 '新':3 '有所':6 '相比':28 '看来':26 '竣工':12 '纪录':22 '规模':11,13 '设
':32 '说':25 '资金':18,33 '超':15 '配套':34 '陈':23 '需求':19
(1 row)

mediawiki=# SELECT to_tsquery('testzhcfg', '保障房资金压力');
           to_tsquery            
---------------------------------
 '保障' & '房' & '资金' & '压力'
(1 row)
AI 代码解读

设置mediawiki数据库的默认分词为中文分词.
digoal=# alter database mediawiki set default_text_search_config='testzhcfg';
AI 代码解读


配置nginx, 参考 http://wiki.nginx.org/MediaWiki
[root@db-172-16-3-150 zhparser]# cd /etc/nginx/conf.d
[root@db-172-16-3-150 conf.d]# cp default.conf default.conf.bak
[root@db-172-16-3-150 conf.d]# vi default.conf
server {
        server_name digoal;
        root /opt/site/mediawiki;    ## <-- Your only path reference.
 
        # Enable compression, this will help if you have for instance advagg? module
        # by serving Gzip versions of the files.
        gzip_static on;
 
        location = /favicon.ico {
                log_not_found off;
                access_log off;
        }
 
        location = /robots.txt {
                allow all;
                log_not_found off;
                access_log off;
        }
 
        # This matters if you use drush prior to 5.x
        # After 5.x backups are stored outside the Drupal install.
        #location = /backup {
        #        deny all;
        #}
 
        # Very rarely should these ever be accessed outside of your lan
        location ~* \.(txt|log)$ {
                allow 172.16.0.0/16;
                deny all;
        }
 
        location ~ \..*/.*\.php$ {
                return 403;
        }
 
        # No no for private
        location ~ ^/sites/.*/private/ {
                return 403;
        }
 
        # Block access to "hidden" files and directories whose names begin with a
        # period. This includes directories used by version control systems such
        # as Subversion or Git to store control files.
        location ~ (^|/)\. {
                return 403;
        }
 
        location / {
                # This is cool because no php is touched for static content
                try_files $uri @rewrite;
        }
 
        location @rewrite {
                # You have 2 options here
                # For D7 and above:
                # Clean URLs are handled in drupal_environment_initialize().
                rewrite ^ /index.php;
                # For Drupal 6 and bwlow:
                # Some modules enforce no slash (/) at the end of the URL
                # Else this rewrite block wouldn't be needed (GlobalRedirect)
                #rewrite ^/(.*)$ /index.php?q=$1;
        }
 
        location ~ \.php$ {
                root /opt/site/mediawiki;
                include /etc/nginx/fastcgi_params;
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        }
 
        # Fighting with Styles? This little gem is amazing.
        # This is for D6
        #location ~ ^/sites/.*/files/imagecache/ {
        # This is for D7 and D8
        location ~ ^/sites/.*/files/styles/ {
                try_files $uri @rewrite;
        }
 
        location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
                expires max;
                log_not_found off;
        }
}

[root@db-172-16-3-150 conf.d]# service nginx restart
Stopping nginx: [  OK  ]
Starting nginx: [  OK  ]
AI 代码解读



配置mediawiki
http://172.16.3.150/mw-config/index.php

mediawiki, nginx, PHP, PostgreSQL on CentOS 6.4 x64 - 德哥@Digoal - PostgreSQL research
 
mediawiki, nginx, PHP, PostgreSQL on CentOS 6.4 x64 - 德哥@Digoal - PostgreSQL research

解决对象缓存的问题, 安装php-apc.

[root@db-172-16-3-150 conf.d]# yum install -y php-apc
[root@db-172-16-3-150 conf.d]# service php-fpm restart
Stopping php-fpm: [  OK  ]
Starting php-fpm: [  OK  ]
AI 代码解读


解决PCRE_UTF8的问题.
这个报错来自 /opt/site/mediawiki/includes/installer/Installer.php

        protected function envCheckPCRE() {
                wfSuppressWarnings();
                $regexd = preg_replace( '/[\x{0430}-\x{04FF}]/iu', '', '-АБВГД-' );
                // Need to check for \p support too, as PCRE can be compiled
                // with utf8 support, but not unicode property support.
                // check that \p{Zs} (space separators) matches
                // U+3000 (Ideographic space)
                $regexprop = preg_replace( '/\p{Zs}/u', '', "-\xE3\x80\x80-" );
                wfRestoreWarnings();
                if ( $regexd != '--' || $regexprop != '--' ) {
                        $this->showError( 'config-pcre-no-utf8' );

                        return false;
                }

                return true;
        }
AI 代码解读

把这一段拷贝到一个脚本里面执行
# vi test.php
<?php
$regexd = preg_replace( '/[\x{0430}-\x{04FF}]/iu', '', '-АБВГД-' );
                // Need to check for \p support too, as PCRE can be compiled
                // with utf8 support, but not unicode property support.
                // check that \p{Zs} (space separators) matches
                // U+3000 (Ideographic space)
                $regexprop = preg_replace( '/\p{Zs}/u', '', "-\xE3\x80\x80-" );

var_dump($regexd);
var_dump($regexprop);

# /usr/bin/php ./test.php
string(7) "-?????-"
string(2) "--"
AI 代码解读

确实, RPM安装的php有问题.
因为pcre已经打包到php-common, 并没有使用服务器安装的pcre包.
例如系统安装的pcre带了utf8选项. 版本是7.8

[root@db-172-16-3-150 etc]# which pcretest
/usr/bin/pcretest
[root@db-172-16-3-150 etc]# pcretest -C
PCRE version 7.8 2008-09-05
Compiled with
  UTF-8 support
  Unicode properties support
  Newline sequence is LF
  \R matches all Unicode newlines
  Internal link size = 2
  POSIX malloc threshold = 10
  Default match limit = 10000000
  Default recursion depth limit = 10000000
  Match recursion uses stack
[root@db-172-16-3-150 etc]# rpm -qf /usr/bin/pcretest
pcre-7.8-6.el6.x86_64
但是php安装的是8.3的pcre, 显然没有使用系统的7.8版本.
# php -i
pcre

PCRE (Perl Compatible Regular Expressions) Support => enabled
PCRE Library Version => 8.32 2012-11-30

Directive => Local Value => Master Value
pcre.backtrack_limit => 100000 => 100000
pcre.recursion_limit => 100000 => 100000
AI 代码解读


解决办法是自行编译安装php, 并且指定pcre库.
The PCRE extension is a core PHP extension, so it is always enabled. By default, this extension is compiled using the bundled PCRE library. Alternatively, an external PCRE library can be used by passing in the --with-pcre-regex=DIR configuration option where DIR is the location of PCRE's include and library files.

安装php

wget http://cn2.php.net/distributions/php-5.5.14.tar.bz2
tar -jxvf php-5.5.14.tar.bz2
cd php-5.5.14
指定pcre库和pcre.h
# rpm -ql pcre-devel
/usr/bin/pcre-config
/usr/include/pcre.h
/usr/include/pcre_scanner.h
/usr/include/pcre_stringpiece.h
/usr/include/pcrecpp.h
/usr/include/pcrecpparg.h
/usr/include/pcreposix.h
/usr/lib64/libpcre.so

# cp /usr/include/pcre.h /usr/lib64
# ./configure --with-pcre-regex=/usr/lib64 --enable-fpm --enable-opcache --with-pdo-pgsql=/home/pg93/pgsql/bin --with-pgsql=/home/pg93/pgsql/bin
# make && make install

/bin/sh /root/php-5.5.14/libtool --silent --preserve-dup-deps --mode=install cp ext/opcache/opcache.la /root/php-5.5.14/modules
Installing shared extensions:     /usr/local/lib/php/extensions/no-debug-non-zts-20121212/
Installing PHP CLI binary:        /usr/local/bin/
Installing PHP CLI man page:      /usr/local/php/man/man1/
Installing PHP FPM binary:        /usr/local/sbin/
Installing PHP FPM config:        /usr/local/etc/
Installing PHP FPM man page:      /usr/local/php/man/man8/
Installing PHP FPM status page:      /usr/local/php/fpm/
Installing PHP CGI binary:        /usr/local/bin/
Installing PHP CGI man page:      /usr/local/php/man/man1/
Installing build environment:     /usr/local/lib/php/build/
Installing header files:          /usr/local/include/php/
Installing helper programs:       /usr/local/bin/
  program: phpize
  program: php-config
Installing man pages:             /usr/local/php/man/man1/
  page: phpize.1
  page: php-config.1
Installing PEAR environment:      /usr/local/lib/php/
[PEAR] Archive_Tar    - already installed: 1.3.11
[PEAR] Console_Getopt - already installed: 1.3.1
[PEAR] PEAR           - already installed: 1.9.4
Wrote PEAR system config file at: /usr/local/etc/pear.conf
You may want to add: /usr/local/lib/php to your php.ini include_path
[PEAR] Structures_Graph- already installed: 1.0.4
[PEAR] XML_Util       - already installed: 1.2.1
/root/php-5.5.14/build/shtool install -c ext/phar/phar.phar /usr/local/bin
ln -s -f /usr/local/bin/phar.phar /usr/local/bin/phar
Installing PDO headers:          /usr/local/include/php/ext/pdo/

# cp /root/php-5.5.14/php.ini-production /usr/local/lib/php.ini

# php --ini
Configuration File (php.ini) Path: /usr/local/lib
Loaded Configuration File:         /usr/local/lib/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)
AI 代码解读


配置php-fpm
# cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf
# service php-fpm stop
# chkconfig php-fpm off
AI 代码解读

# 使用新装的php-fpm启动
# /usr/local/sbin/php-fpm -R -y /usr/local/etc/php-fpm.conf
AI 代码解读


mediawiki, nginx, PHP, PostgreSQL on CentOS 6.4 x64 - 德哥@Digoal - PostgreSQL research
因为自行编译了php, 所以警告需要另外安装apc和intl.
对应的包是 : 

php-pecl-apc-3.1.15-0.4.20130912.el6.remi.5.4.x86_64
php-intl-5.4.30-1.el6.remi.x86_64
AI 代码解读

安装参考 : 

# pecl install intl
如果遇到这个错误, 需要安装libicu-devel libicu. 
configure: error: Unable to detect ICU prefix or no failed. Please verify ICU install prefix and make sure icu-config works.
最好安装最新的.不要使用yum安装.
wget http://download.icu-project.org/files/icu4c/53.1/icu4c-53_1-src.tgz
tar -zxvf icu4c-53_1-src.tgz
cd icu/source
# ./configure --enable-shared
# make && make install
[root@db-172-16-3-150 local]# icu-config --version
53.1
[root@db-172-16-3-150 local]# which icu-config
/usr/local/bin/icu-config
安装intl
# pecl install intl
...
Build process completed successfully
Installing '/usr/local/lib/php/extensions/no-debug-non-zts-20121212/intl.so'
install ok: channel://pecl.php.net/intl-3.0.0
configuration option "php_ini" is not set to php.ini location
You should add "extension=intl.so" to php.ini

配置 intl.
[root@db-172-16-3-150 php-5.5.14]# echo "extension=intl.so" >>/usr/local/lib/php.ini 
[root@db-172-16-3-150 php-5.5.14]# ps -ewf|grep fpm
root      8963     1  0 15:47 ?        00:00:00 php-fpm: master process (/usr/local/etc/php-fpm.conf)
nobody    8964  8963  0 15:47 ?        00:00:00 php-fpm: pool www                                
nobody    8965  8963  0 15:47 ?        00:00:00 php-fpm: pool www                                
root     12112  8977  0 16:07 pts/1    00:00:00 grep fpm
[root@db-172-16-3-150 php-5.5.14]# kill 8963
[root@db-172-16-3-150 php-5.5.14]# php-fpm -R -y /usr/local/etc/php-fpm.conf
AI 代码解读


现在就差apc模块了, 但是好像有BUG. 无法安装.
# pecl install apc
/tmp/pear/temp/APC/apc_compile.c: In function ‘my_copy_class_entry’:
/tmp/pear/temp/APC/apc_compile.c:755: warning: assignment from incompatible pointer type
/tmp/pear/temp/APC/apc_compile.c: In function ‘apc_copy_class_entry_for_execution’:
/tmp/pear/temp/APC/apc_compile.c:1956: warning: assignment from incompatible pointer type
/tmp/pear/temp/APC/apc_compile.c: In function ‘apc_copy_trait_alias’:
/tmp/pear/temp/APC/apc_compile.c:2379: error: ‘zend_trait_alias’ has no member named ‘function’
/tmp/pear/temp/APC/apc_compile.c:2380: error: ‘zend_trait_alias’ has no member named ‘function’
/tmp/pear/temp/APC/apc_compile.c:2380: error: ‘zend_trait_alias’ has no member named ‘function’
/tmp/pear/temp/APC/apc_compile.c: In function ‘apc_copy_trait_precedence’:
/tmp/pear/temp/APC/apc_compile.c:2416: error: ‘zend_trait_precedence’ has no member named ‘function’
/tmp/pear/temp/APC/apc_compile.c:2417: error: ‘zend_trait_precedence’ has no member named ‘function’
/tmp/pear/temp/APC/apc_compile.c:2417: error: ‘zend_trait_precedence’ has no member named ‘function’
make: *** [apc_compile.lo] Error 1
ERROR: `make' failed
AI 代码解读


mediawiki, nginx, PHP, PostgreSQL on CentOS 6.4 x64 - 德哥@Digoal - PostgreSQL research
配置数据库连接
mediawiki, nginx, PHP, PostgreSQL on CentOS 6.4 x64 - 德哥@Digoal - PostgreSQL research
配置网页数据库账号
mediawiki, nginx, PHP, PostgreSQL on CentOS 6.4 x64 - 德哥@Digoal - PostgreSQL research
配置账号
mediawiki, nginx, PHP, PostgreSQL on CentOS 6.4 x64 - 德哥@Digoal - PostgreSQL research
 
mediawiki, nginx, PHP, PostgreSQL on CentOS 6.4 x64 - 德哥@Digoal - PostgreSQL research
配置wiki.
mediawiki, nginx, PHP, PostgreSQL on CentOS 6.4 x64 - 德哥@Digoal - PostgreSQL research
 
mediawiki, nginx, PHP, PostgreSQL on CentOS 6.4 x64 - 德哥@Digoal - PostgreSQL research
 
mediawiki, nginx, PHP, PostgreSQL on CentOS 6.4 x64 - 德哥@Digoal - PostgreSQL research
 
mediawiki, nginx, PHP, PostgreSQL on CentOS 6.4 x64 - 德哥@Digoal - PostgreSQL research
 
mediawiki, nginx, PHP, PostgreSQL on CentOS 6.4 x64 - 德哥@Digoal - PostgreSQL research

修改images的权限.

[root@db-172-16-3-150 mediawiki]# cd /opt/site/mediawiki/
[root@db-172-16-3-150 mediawiki]# chmod -R 777 images
AI 代码解读


mediawiki, nginx, PHP, PostgreSQL on CentOS 6.4 x64 - 德哥@Digoal - PostgreSQL research
 
mediawiki, nginx, PHP, PostgreSQL on CentOS 6.4 x64 - 德哥@Digoal - PostgreSQL research
这个警告, 需要配置一下php.ini.

# vi /usr/local/lib/php.ini
allow_url_fopen = On
[root@db-172-16-3-150 images]# ps -ewf|grep fpm
root      3912     1  0 16:48 ?        00:00:00 php-fpm: master process (/usr/local/etc/php-fpm.conf)
nobody    3913  3912  0 16:48 ?        00:00:04 php-fpm: pool www                        
nobody    3914  3912  0 16:48 ?        00:00:04 php-fpm: pool www                        
root      4392  8977  0 17:05 pts/1    00:00:00 grep fpm
[root@db-172-16-3-150 images]# kill 3912
[root@db-172-16-3-150 images]# php-fpm -R -y /usr/local/etc/php-fpm.conf
继续
AI 代码解读


mediawiki, nginx, PHP, PostgreSQL on CentOS 6.4 x64 - 德哥@Digoal - PostgreSQL research
下载这个文件LocalSettings.php, 并放到/opt/site/mediawiki/
然后就可以点击"进入您的wiki了"
mediawiki, nginx, PHP, PostgreSQL on CentOS 6.4 x64 - 德哥@Digoal - PostgreSQL research

[其他]
1. 数据库在这里使用了短连接, 所以我们可以使用pgbouncer来作为连接池.

[参考]
相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
打赏
0
0
0
0
20691
分享
相关文章
如何在 CentOS 7 上为 Nginx 创建自签名 SSL 证书
如何在 CentOS 7 上为 Nginx 创建自签名 SSL 证书
270 1
今日小结通过aliyun的本地容器镜像部署我的nginx和php环境
简介: 本教程介绍如何基于 Dragonwell 的 Ubuntu 镜像创建一个运行 Nginx 的 Docker 容器。首先从阿里云容器镜像服务拉取基础镜像,然后编写 Dockerfile 确保 Nginx 作为主进程运行,并暴露 80 端口。最后,在包含 Dockerfile 的目录下构建自定义镜像并启动容器,确保 Nginx 在前台运行,避免容器启动后立即退出。通过 `docker build` 和 `docker run` 命令完成整个流程。
127 24
今日小结通过aliyun的本地容器镜像部署我的nginx和php环境
|
2月前
|
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
91 20
当你的nginx服务器和php服务器不在一起的时候,这个nginx 的root目录问题
两个服务器的网站代码目录需要对齐,docker容器里面也是一样
nginx修改网站默认根目录及发布(linux、centos、ubuntu)openEuler软件源repo站点
通过合理配置 Nginx,我们可以高效地管理和发布软件源,为用户提供稳定可靠的服务。
284 13
Tengine、Nginx安装PHP命令教程
要在阿里云Linux上安装PHP,请先更新YUM源并启用PHP 8.0仓库,然后安装PHP及相关扩展。通过`php -v`命令验证安装成功后,需修改Nginx配置文件以支持PHP,并重启服务。最后,创建`phpinfo.php`文件测试安装是否成功。对于CentOS系统,还需安装EPEL源和Remi仓库,其余步骤类似。完成上述操作后,可通过浏览器访问`http://IP地址/phpinfo.php`测试安装结果。
2022年超详细在CentOS 7上安装Nginx方法(源码安装)
这篇文章提供了在CentOS 7系统上通过源码安装Nginx的详细步骤,包括从官网下载Nginx源码包、上传至虚拟机、解压、删除压缩包、编译安装前的配置、安装PCRE库(因为Nginx使用PCRE库解析正则表达式)、安装zlib和OpenSSL库(用于支持HTTPS协议)、重新编译Nginx、安装后启动Nginx服务、关闭服务、修改默认端口、以及重启服务测试等步骤。文章还提供了相关命令和操作截图,帮助用户更好地理解和执行安装过程。
2022年超详细在CentOS 7上安装Nginx方法(源码安装)
详细解释容器以及虚拟机centos7.9容器化部署基础服务(容器化部署nginx)
容器是一种轻量级、可移植的软件打包和隔离技术,将应用程序及其依赖项打包,确保在任何环境中一致运行。容器共享主机操作系统内核,相比虚拟机更高效、轻量,具有快速启动和高资源利用率的特点。容器的关键技术包括命名空间(如 PID、NET 等)、控制组(cgroups)和联合文件系统(UnionFS)。使用容器可以提高开发和部署效率,简化管理,确保环境一致性。例如,在 CentOS 7.9 上部署 Nginx 时,可以通过 Docker 下载和运行 `nginx:1.20` 镜像,并通过端口映射使外部请求访问 Nginx 服务。此外,还可以将测试页面复制到容器中,进一步验证容器的功能。
113 0
|
8月前
|
Linux CentOS 宝塔 Suhosin禁用php5.6版本eval函数详细图文教程
【8月更文挑战第27天】本文介绍两种禁用PHP执行的方法:使用`PHP_diseval_extension`禁用和通过`suhosin`禁用。由于`suhosin`不支持PHP8,仅适用于PHP7及以下版本,若服务器安装了PHP5.6,则需对应安装`suhosin-0.9.38`版本。文章提供了详细的安装步骤,并强调了宝塔环境下与普通环境下的PHP路径差异。安装完成后,在`php.ini`中添加`suhosin.so`扩展并设置`executor.disable_eval = on`以禁用执行功能。最后通过测试代码验证是否成功禁用,并重启`php-fpm`服务生效。
131 2

热门文章

最新文章