标签存档: php

archlinux安装nginx+mariadb+php-fpm

gentoo某次升级之后,残废了,于是转战到arch中,安装了kde5,配置了web开发环境。

arch中安装kde5是相当简单的,一条命令足够了:

pacman -S plasma sddm

好进入正题,arch中安装nginx+mariadb+php-fpm也是相当简单,不过配置起来和别的不太一样,费了点时间。

1、安装基本组件:

pacman -S nginx php-fpm mariadb php-gd

2、配置maridb,安装数据库及设置密码等:

参考:https://wiki.archlinux.org/index.php/MySQL

mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
systemctl start mysqld
mysql_secure_installation
systemctl restart mysqld

3、配置nginx,修改配置文件,主要是改成以下内容

        location / {
            root   /data/web;
            index  index.php index.html index.htm;
        }
......
        location ~ \.php$ {
            fastcgi_pass   unix:/run/php-fpm/php-fpm.sock;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /data/web$fastcgi_script_name;
            include        fastcgi_params;
        }

按照红色字体修改即可。

4、启动及开机启动

systemctl start nginx
systemctl start php-fpm
systemctl enable nginx
systemctl enable mysqld
systemctl enable php-fpm

写个phpinfo测试一下就行了。

centos安装apc

Alternative PHP Cache (APC) 是一个开放自由的PHP opcode 缓存。它的目标是提供一个自由、 开放,和健全的框架用于缓存和优化PHP的中间代码。

简单说,php的apc组件就是优化php性能的一个工具。

centos中没有这个包,需要手动编译安装。安装方法如下:

1、下载源码

apc官方地址:http://pecl.php.net/package/apc,最新版是3.1.14。

wget http://pecl.php.net/get/APC-3.1.14.tgz

2、解压、编译安装

tar xzf APC-3.1.14.tgz
phpize
./configure --enable-apc --enable-apc-mmap --with-php-config=/usr/local/php/bin/php-config --prefix=/usr/local/apc
make && make install

3、配置php.ini

vi /usr/local/php/etc/php.ini

添加以下代码到文件末尾:

[apc]
extension= "apc.so"
apc.enabled = 1
apc.cache_by_default = on
apc.shm_segments = 1
apc.shm_size = 64
apc.ttl = 7200
apc.user_ttl = 7200
apc.num_files_hint = 0
apc.write_lock = On

4、重启apache或者php-fpm(nginx)

service httpd restart/service php-fpm restart

archlinux中安装nginx+mysql+php

在新装的archlinux中安装了LNMP环境,记录一下:

1、安装软件:

pacman -S nginx mysql php-fpm php-gd

2、配置nginx:

vi /etc/nginx/nginx.conf

3、作为服务启动(systemd环境):

systemctl enable nginx.service

systemctl enable mysqld.service

systemctl enable php-fpm.service

先简单记一下,回头再细化。

windows下的php扩展无法启动的解决办法

在windows下用phpnow配置服务器时,可能会遇到有些扩展无法启动的情况,这个在apache的日志中有记录(error.log),例如php_curl.dll这个扩展:

PHP Warning:  PHP Startup: Unable to load dynamic library '....phpextphp_curl.dll' - xd5xd2xb2xbbxb5xbdxd6xb8xb6xa8xb5xc4xc4xa3xbfxe9xa1xa3rn in Unknown on line 0

解决办法:

1、首先找到这个扩展的依赖有哪些,比如php_curl.dll需要依赖libeay32.dll和ssleay32.dll这两个;

2、两种方法(个在感觉第二种方法更好一些):

一是把扩展及依赖扩展复制到系统盘的windowssystem32目录即可。

二是在httpd.conf中的导入模块之前,添加这两个依赖的导入:

LoadFile ../php/ssleay32.dll
LoadFile ../php/libeay32.dll

隐藏nginx和php版本号

隐藏nginx版本号:

nginx.conf中添加server_tokens off;

隐藏php版本信息:

将php.ini中的expose_php = On改为expose_php = Off

phpmyadmin禁用suhosin的提示

如果服务器上安装了suhosin,在打开phpmyadmin时,出现如下提示:

链接表的额外特性尚未激活。要查出原因,请点击此处。
使用配置文件中定义的控制用户连接失败。
服务器上运行了 Suhosin。请先查看文档中是否有类似的情况。

解决办法:编辑配置文件 config.inc.php,添加以下语句即可:

$cfg['SuhosinDisableWarning']='true';

phpmyadmin升级到3.5的一些变化

今天把phpmyadmin升级到了3.5.0,发现许多地方发生了变化:

Welcome to phpMyAdmin 3.5.0; here are the major new features:

* browse-mode improvements
** grid editing
** remember recent tables
** remember last sort order by table
** flexible column width
** reorder columns
** more compact navigation bar
* AJAXification of many operations
* reorganised server status page, with server monitoring
* improved support for stored routines, events and triggers
* openGIS support
* zoom-search in table search
* Drizzle support
* improved ENUM/SET editor

在使用过程中发现有以下几个变化在配置时需要注意:

1、要求安装mysqli扩展,原来3.4时没有要求;

2、pmd、contrib、scripts目录被删除,出现了一个examples目录,新建phpmyadmin的数据库的文件create_tables.sql移动到了examples目录;

3、配置文件中增加了$cfg[‘Servers’][$i][‘recent’]和$cfg[‘Servers’][$i][‘table_uiprefs’] 两个参数。

debian6安装nginx+mysql+php-fpm

debian6.0.4下安装nginx+mysql+php-fpm,在虚拟机中测试成功。

1、在/etc/apt/sources.list中添加nginx及php-fpm的源:

deb http://packages.dotdeb.org stable all
deb-src http://packages.dotdeb.org stable all

下载并添加dotdeb的gpg:

wget http://www.dotdeb.org/dotdeb.gpg
cat dotdeb.gpg | apt-key add -

2、安装nginx、php-fpm、mysql:

apt-get install nginx php5-fpm php-apc php5-mysql php5-curl php5-gd php5-idn php-pear php5-mcrypt php5-memcache php5-ming mysql-server

3、修改nginx配置文件,支持php:

vi /etc/nginx/conf.d/default.conf
location / {
root   /usr/share/nginx/html;
index  index.php index.html index.htm;
}
#location ~ .php$ {
#    root           html;
#    fastcgi_pass   127.0.0.1:9000;
#    fastcgi_index  index.php;
#    fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;
#    include        fastcgi_params;
#}

删除上面蓝色字体字符及前面的#号,红色字体为网站目录。

4、重启nginx:

service nginx restart

debian安装网站程序比其他系统方便的地方,nginx、php和mysql安装完成后,自动启动并加入系统启动中。

Fatal error: Call to undefined function session_unregister()

原来在php5.3中无任何问题的代码到了php5.4中却出现如下错误:

Fatal error: Call to undefined function session_unregister()

发现出现错误的语句是:

session_unregister("username");

改成以下语句后问题解决,原因不清楚:

$_SESSION['username']='';

gentoo里的php升级到了5.4

笔记本上安装的是~x86的gentoo,原来是php5.3+nginx,上周emerge了一下,发现php升级到了5.4.0_rc1,php无法启动php-fpm了,网上查了一下,发现php-fpm已经包含在了php的内核中了。后来重新emerge了php之后,发现有如下提示:

* IMPORTANT: config file '/etc/init.d/php-fpm' needs updating.

于是运行etc-update替换了旧的php配置文件之后,一切正常。

另外,在php的use中去掉了fastcgi。

第 1 页,共 2 页12