本文目录一览:
- 1、如何在linux下安装多个不同版本的PHP
- 2、乔大姐,知道如何用PHP生成结构体吗
- 3、护卫神php环境安装完成后网站程序放哪里
- 4、php 如何定义一个数组
- 5、php站内搜索怎么做
- 6、PHP有没有类似JS setTimeout的函数
如何在linux下安装多个不同版本的PHP
Linux下部署php多版本共存
背景说明
自php7问世,身为最新版本控的我马上升级体验,但是由于服务器上还有旧程序在运行,只好部署一个php多版本共存环境。
现有环境是lnmp
- CentOS 6.7
- nginx 1.10.1
- mariadb-10.0.26
- php 7.0.8
为了更好兼容旧的php程序,推荐使用5.4.45. 主要是兼容mysql扩展。
开始安装
首先要下载php-5.4.45.tar.gz源码包。
通过源码安装
# tar xzvf php-5.4.45.tar.gz
# cd php-5.4.45
# ./configure --prefix=/usr/local/php54 --with-config-file-path=/usr/local/php54/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype-dir=/usr/local/freetype --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-gettext --disable-fileinfo --enable-intl --with-xsl
# make ZEND_EXTRA_LIBS='-liconv'
# make install
# cp php.ini-production /usr/local/php/etc/php.ini
------------------------------------------------------------------------------------------------
php.ini 配置
post_max_size = 50M
upload_max_filesize = 50M
date.timezone = PRC
short_open_tag = On
cgi.fix_pathinfo=0
max_execution_time = 300
disable_functions=passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server
------------------------------------------------------------------------------------------------
php-fpm.conf 配置
------------------------------
# vim /usr/local/php/etc/php-fpm.conf1
[global]
pid = /usr/local/php54/var/run/php-fpm.pid
error_log = /usr/local/php54/var/log/php-fpm.log
log_level = notice
[www]
listen = /tmp/php54-cgi.sock
listen.backlog = -1
listen.allowed_clients = 127.0.0.1:9001
listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www
pm = dynamic
pm.max_children = 40
pm.start_servers = 20
pm.min_spare_servers = 20
pm.max_spare_servers = 40
request_terminate_timeout = 100
request_slowlog_timeout = 0
slowlog = var/log/slow.log
----------------------------------------------------------------------------------
启动 php-fpm
# cp sapi/fpm/init.d.php-fpm /etc/init.d/php54-fpm
# chmod +x /etc/init.d/php54-fpm
# /etc/init.d/php54-fpm start
-------------------------------------------------------------------------------------------
修改nginx配置,对需要的服务配置使用php-5.4.45
location ~ [^/]\.php(/|$)
{
try_files $uri =404;
fastcgi_pass unix:/tmp/php54-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
----------------------------------------------------------------------------------------
配置php-5.4.45 的php54-fpm 开机自动启动
# chkconfig --add php54-fpm
# chkconfig php54-fpm on
乔大姐,知道如何用PHP生成结构体吗
执行phpize生成编译文件,phpize在PHP安装目录的bin目录下
/usr/local/php5/bin/phpize
运行时,可能会报错:Cannot find autoconf. Please check your autoconf installation and
the $PHP_AUTOCONF
environment variable is set correctly and then rerun this
script.,需要安装autoconf:
yum install autoconf(RedHat或者CentOS)、apt-get install
autoconf(Ubuntu Linux)
/usr/local/php5/bin/php -v
执行这个命令时,php会去检查配置文件是否正确,如果有配置错误,这里会报错,可以根据错误信息去排查!
护卫神php环境安装完成后网站程序放哪里
护卫神PHP套件,只是搭建了PHP+MySQL的运行环境,并且默认只开设了一个phpmyadmin网站。
如果用户要新建网站,可以参考V课堂视频教程,这个讲得最详细,在官网首页有一个V课堂,点进去看护卫神专题,找到[安装PHP+MySQL方法]即可,2003/2008/2012系统都讲得比较清楚。(貌似不能发URL)。
·IIS默认不支持PHP功能,需要单独安装应用才可以使用。
·为了简化用户安装PHP,本节将使用由护卫神开发的PHP套件,该套件自动配置php和mysql,以及做好安全设置。
1、准备工作
·检查是否安装IIS,如果没有安装请参考我站“IIS安装方法”的视频。
·到下载PHP套件安装包。
PHP有多个版本可选,安装方法都一样;本节选择php5.6版本,专为 Windows 2008 和 Windows 2012 开发的64位版本。
2、安装PHP套件
·建议安装到非系统盘,主要是MySQL数据库存放在该目录。
·套件做好了默认配置,适合大多数PHP程序;如果您的程序比较特别,可以自己更改php.ini。
这样PHP+MYSQL就安装好了。
3、创建一个PHP站点
·注意:为了让您看得更简单,我们暂不涉及安全因素。
·如果需要了解如何创建一个安全的站点,请观看我站“安全站点创建方法”视频。
网站存放到d:\wwwroot\discuz\,添加Users的访问权限;同时创建web子目录,用于存放PHP程序。
绑定域名:test.huweishen.com
4、安装一套PHP程序
·我们以discuz为例,安装程序我已经下载到了桌面。
·创建数据库;从安全角度考虑,不建议使用root帐户连接数据库;因此我们手工创建安全的帐户。
·discuz已经可以访问了。
如果您需要创建更多的PHP站点,重复执行3、4步操作即可。
php 如何定义一个数组
php中定义数组的方法:
1、PHP定义数组的格式:
数组名=array();
如:$aa=array();//这样就定义了一个数组,
之后给元素赋值:
$aa[0]="9016";
$aa[1]="9017";
$aa[2]="9018";
2、PHP输出数组的方法:
foreach($aa as $val)
{
echo$val;
}
也可以在定义数组时直接赋值
$aa=array(0="9016",1="9017";2="9018");
3、PHP的数组还可以用字符做下标,不一定要数字:
$aa["name"]="Joan";
$aa["num"]="9018";
$aa["email"]="abc@abc.com";
也可以这样
$aa=array("name"="joan","num"="9018","email"="abc@abc.com");
将一个一维数组的元素也定义为数组,就是一个二维数组,
$aa=array(0="a1",1="a2");
$bb=array(0="b1",1="b2");
$cc=array(0=$aa;1=$bb);此时,$cc[0]也是一个数组,$cc[1]也是一个数组,$cc就是一个二维数组。
同理,三维,四维数组也可以继续定义下去。
4、数组的元素不仅于数字和字符串,可以是类的对象。
php站内搜索怎么做
站内搜索是一种使用关键字来搜索文章标题的功能。
PHP的站内搜索可以使用SELECT和LIKE语句来对文章的标题进行过滤选择,将需要的数据筛选出来。 如果有多个筛选可以使用AND语句连接起来进行多条语句筛选。 如果希望是能搜索到全站所有的数据,一般在数据库设计之初最好就是把所有数据放一个表,然后通过扩展表的方式进行数据扩展!具体方法可以参考ONETHINK的设计模式。
具体搜索方法: SELECT * FROM 表名 WHERE 字段 LIKE '%关键字%'
PHP有没有类似JS setTimeout的函数
没有,不过可以通过sleep函数来实现。
代码:
function setTimeout($func, $sec = 0, $timeout = 0, $args = array()) {
if (!function_exists($func) || $timeout == 0) {
return false;
}
while ($timeout 0) {
if (!empty($args) is_array($args)) {
call_user_func_array($func, $args);
} else {
call_user_func($func, $args);
}
flush();
ob_flush();
sleep($sec);
$timeout--;
}
return false;
}