修改phpinfo()与php -v版本不一致的问题
php -v得到的版本是
PHP 7.2.34 (cli)
which php得到
/usr/bin/php
php-fpm -v得到的版本是
PHP 7.2.34 (fpm-fcgi)
which php-fpm得到
/usr/sbin/php-fpm
find / -name php.ini得到
/usr/local/php/etc/php.ini
/etc/php.ini
修改phpinfo()与php -v版本不一致的问题
php -v得到的版本是
PHP 7.2.34 (cli)
which php得到
/usr/bin/php
php-fpm -v得到的版本是
PHP 7.2.34 (fpm-fcgi)
which php-fpm得到
/usr/sbin/php-fpm
find / -name php.ini得到
/usr/local/php/etc/php.ini
/etc/php.ini
我在Windows 7下配置Apache2.4+php5.6+mysql5.6,服务程序安装在C盘,把网站配置在E:\webs,使用以下的配置(httpd.conf):
DocumentRoot “E:/webs”
<Directory “E:/webs”>
Options -Indexes
Options +FollowSymlinks
AllowOverride None
Require all granted
</Directory>
修改1:/usr/local/php/etc/php.ini,把
display_errors = Off
改成
display_errors = On
修改2:/usr/local/php/etc/php-fpm.conf,把
;php_flag[display_errors] = off
改成
php_flag[display_errors] = on
然后重启php-fpm:
/etc/init.d/php-fpm restart
上一篇说到在树莓派中部署Nginx+PHP,在这里可以找到部署MySQL的方法,在这里可以找到给php部署mcrypt扩展的方法。
命名汇总如下:
[bash]sudo apt-get install mysql-server
sudo mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak
sudo cp /usr/share/doc/mysql-server-5.5/examples/my-small.cnf /etc/mysql/my.cnf
echo 修改/etc/mysql/my.cnf在[mysqld]下增加一行:query_cache_size = 8M
sudo service mysql restart
sudo apt-get install php5-mysql
echo php增加mcrypt扩展方法
sudo apt-get install php5-mcrypt
sudo php5enmod mcrypt
echo 最后要重启php
sudo service php5-fpm restart
[/bash]
最后到这里下载phpmyadmin部署即可:把解压后所有文件复制进/var/www/phpmyadmin目录下,把config.sample.inc.php复制成config.inc.php,打开修改$cfg[‘blowfish_secret’] = ”,单引号里加上随机的字符串即可。
摘自:http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/03/15/1984969.html
最近我在LocVPS上部署的PHP经常报“502 Bad Gateway”错误,启用并查看php-fpm.log可以看到max_children暴掉了,我默认的时候是5个,request_terminate_timeout没启用。网上找到下面这个解决方法,由于我的VPS是Xen 512M 双核的,服务器上还部署了其它应用,因此我把request_terminate_timeout设成480(8分钟稍大于nginx服务器配置里的5分钟),max_children设成15,但愿问题能解决。下面是转载正文:
nginx.conf的http域规定了PHP-CGI的连接、发送和读取的时间,300秒足够用了,因此服务器很少出现504 Gateway Time-out这个错误。最关键的是php-fpm.conf的设置,这个会直接导致502 Bad Gateway和504 Gateway Time-out。
下面我们来仔细分析一下php-fpm.conf几个重要的参数:
php-fpm.conf有两个至关重要的参数,一个是“max_children”,另一个是“request_terminate_timeout”,我的两个设置的值一个是“40”,一个是“900”,但是这个值不是通用的,而是需要自己计算的。
去年5月份前@yegle更新的Twip版本在O模式里也调用了$this->uri_fixer()函数,因此用“修正对API1.1的支持”增加$replacement数组的替换项就可以支持UberTwitter v0.971了,因为新的API不再支持replies.json和mentions.json。
今天使用“get clone https://github.com/twip/twip”取到最新的源码,UberTwitter里仍用O模式就发现做了$replacement数组的替换还是刷不了@消息,仔细查看代码才发现O模式的override_mode()函数里不再调用$this->uri_fixer()函数了,只好自己修改代码了,在第189行处插入以下代码:
[php]
$replacement = array(
‘mentions.json’ => ‘mentions_timeline.json’,
‘replies.json’ => ‘mentions_timeline.json’,
);
$forwarded_request_uri = str_replace(array_keys($replacement), array_values($replacement), $this->forwarded_request_uri);
[/php]
并把其后的两处$this->forwarded_request_uri变量替换成$forwarded_request_uri即可支持UberTwitter:
[php]
$filterName = Twip::encode_uri($forwarded_request_uri);
$parts = parse_url($forwarded_request_uri);
[/php]
更新的twip.php文件参见本地:twip.php.txt,替换时把后缀.txt去掉。
另外提一下在Nginx配置文件里的重定向处理方法,假设twip部署在http://youdomain.com/twip目录,除了config.php的配置成“define(‘BASE_URL’,’http://youdomain.com/twip/’);”外,还需要修改ngix.conf,添加下面几行:
[text]
location /twip {
if (!-e $request_filename) {
rewrite ^/twip/(.*)$ /twip/index.php last;
}
}
[/text]
如果目录有变化,请对应修改上的twip部分。
在编写PHP自动处理脚本时可能会遇到需要输入验证码的情况,比如我在写淘宝店铺助手时就要求登录时必须输入验证码。解决办法是增加一个专用登录页面,在登录时如果遇到需要输入验证码的情况就通过curl使用同一个cookie在同一session下从目标服务器取到验证码保存成本地图片,然后在专用登录界面显示该验证码图片让用户输入对应的验证码,再提交完成登录,登录结果自动保存在cookie里,之后使用同一cookie在同一session里使用就不再需要登录。
为了方便管理,每次登录时都保存成images/checkcode.jpg,在专用登录界面如果使用常规方法<img src=”images/checkcode.jpg”>显示验证码图片,浏览器会优先从缓存读取图片来显示,这样用户看到的是旧的验证码图片,解决办法是在jpg文件后加随时间变化的参数,比如“日时分秒”数值:
[php]
$content = getContent($checkcode_url);
file_put_contents(‘images/checkcode.jpg’, $content);
echo ‘<form action=”login.php” method=”post”><img src=”images/checkcode.jpg?’ . date(‘dHis’) . ‘” width=”100″ height=”30″ border=”1″> <input name=”checkcode” type=”text” size=”8″> <input type=”submit” name=”Submit” value=”提交”></form>’;
[/php]
配置使用cookie的脚本:
define(‘COOKIE_FILE’, ‘tbcookie’);
curl_setopt($ch, CURLOPT_COOKIEJAR, realpath(COOKIE_FILE));
curl_setopt($ch, CURLOPT_COOKIEFILE, realpath(COOKIE_FILE));
PHProxy是一个网页代理的PHP源码,下载源码直接放到自有的PHP空间上即可通过浏览器使用。通过它可以实现在自己的PHP空间访问受限的目标网站,再把内存传回本地的浏览器上显示,它会把所有的链接全部替换成你部署PHProxy目录的链接,通过q变量传递该链接被加密后生成的参数,所以不会被GFW发现是访问导常网站而重置。
但还有个问题是网站内容没办法避开GFW的监测,虽然GFW不常这么做,因为此法会大大加重GFW的处理量,一般只会对特定的域名或IP做内容监测。以防万一,在部署PHProxy的地方推荐用SSL,可申请StartSSL免费一年的SSL证书。另外就是在域名根目录放一个文件名是robots.txt的文本文件,内容写下面两行,告诉正规的搜索引擎别搜索这个站点:
User-agent: *
Disallow: /
当然还有不正规的搜索引擎不遵守这个国际规范,尤其是某些国家,所以部署了PHProxy站点就不要公开使用了,私用或在可靠的熟人朋友之间使用即可。
这个PHProxy不支持视频,用来看看页面、图片就好了,想用视频就用goagent吧。
几天前,搭建自己WordPress博客的个人VPS被毁,好在更早前得知Dropbox能运行于Linux VPS上用于备份文件内容,所以本博没有太大损失,除了重搭VPS环境所花的时间。
Dropbox得用https方式来访问,不然的话连接会跟本域名lordong.net一样被重置,另外为了防止域名解析被污染(即DNS污染),建议使用国外的DNS服务器,比如Google的8.8.8.8和8.8.4.4。
Dropbox我就不多说了,通过邀请注册机制可以双方同时增加一定量的免费空间(以前是250MB,现在是500MB),默认是2GB,这是我的邀请:http://db.tt/okeXDNf
因为我已经有了备份,这里主要说我恢复的经过,恢复完了也就完成了备份的准备了。