查看了 nginx 和 php-fpm 的日志文件,都没有发现错误。实在是奇怪。
搜索后解决了问题:在 location ~ \.php$ {} 配置里加上如下一行:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
查看了 nginx 和 php-fpm 的日志文件,都没有发现错误。实在是奇怪。
搜索后解决了问题:在 location ~ \.php$ {} 配置里加上如下一行:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
openSUSE 在启动服务的时候出现如上错误。但是不知道应该如此处理和看那个错误日志。
搜索后找到答案,看这里
Try “systemd-journalctl -a”. You may also find some information in /var/log/messages. Finally you can disable redirecting to systemctl by using “SYSTEMD_NO_WRAP=yes /etc/init.d/script-name start”
算法还是很重要嘀~
直接贴代码:
<?php
/*
* count_sort.php 计数排序
* cli 模式运行 php count_sort.php 3 4 5 6 3 2 4 56 4 3 2 8 1
*/
$a = $argv;
unset($a[0]);
$n = count($a);
// 找出数组中最大的数
$k = 0;
for ($i = 1; $i <= $n; $i++) {
if ($k < $a[$i])
$k = $a[$i];
}
// 初始化数组 $c
$c[0]= 0;
for ($i = 1; $i <= $k; $i++)
$c[$i] = 0;
for ($i = 1; $i <= $n; $i++) {
$c[$a[$i]]++;
}// 此时 $c[$i] 包含等于 $i 的元素个数
for ($i = 1; $i <= $k; $i++) {
$c[$i] = $c[$i-1] + $c[$i];
}// 此时 $c[$i] 包含小于或等于 $i 的元素个数
for ($i = $n; $i >= 1; $i--) {
$b[$c[$a[$i]]] = $a[$i];
$c[$a[$i]]--;
}
// 输出已排好序的数组
for ($i = 1; $i <= $n; $i++)
echo $b[$i] . ' ';
echo "\n";
今天又重新梳理了一遍,不能根据这个代码看出计数排序是稳定排序:
<?php
/**
* 计数排序
*/
$nums = [23,12,23,34,23,456,23,12,23,45,23,12,1234];
$n = count($nums);
// 找出数组中最大的数
$max = $nums[0];
for ($i = 1; $i < $n; $i++) {
if ($max < $nums[$i]) {
$max = $nums[$i];
}
}
// 初始化用来计数的数组
for ($i = 0; $i <= $max; $i++) {
$cnt[$i] = 0;
}
// 下面的 for loop 处理完毕后,$cnt[$i] 表示待排序数组中,值等于 $i 的元素个数
for ($i = 0; $i < $n; $i++) {
$cnt[$nums[$i]]++;
}
// 下面的 for loop 处理完毕后,$cnt[$i] 表示待排序数组中,值小于等于 $i 的元素个数
for ($i = 1; $i <= $max; $i++) {
$cnt[$i] = $cnt[$i-1] + $cnt[$i];
}
// 这一步比较难理解
for ($i = $n-1; $i >= 0; $i--) {
$result[$cnt[$nums[$i]]] = $nums[$i];
$cnt[$nums[$i]]--; // 前一个数找到位置后,那么和它值相同的数位置往前一步
}
for ($i = 1; $i < $n; $i++) {
echo $result[$i], ' ';
}
echo PHP_EOL;
查看所有安装的软件包命令为:
dpkg -l
查看软件包的详细信息:
dpkg -s PACKAGE_NAME
现象:我的电脑装了 windows 7 和 ubuntu 12.10 两个系统,今天新增一个分区后 ubuntu 进不去了。
解决方法:利用 easybcd 或者 grub4dos 进入 grub,手动输入命令启动 ubuntu (这里假设 boot 分区在 (hd0,6),根分区在(hd0,7))
root (hd0,6) kernel /vmlinuz root=/dev/sda8 initrd /initrd.img boot
进入 ubuntu 后,在终端运行 update-grub 重建 grub 配置。
我的电脑系统是 win 7 旗舰版。
无线网卡为 Broadcom 802.11n 网络适配器。
在 cmd 里运行如下代码即可以通过无线共享本地连接。
netsh wlan set hostednetwork mode=allow ssid=YOURSSID key=YOURPASSWORD netsh wlan start hostednetwork
YOURSSID 是无线名称 YOURPASSWORD 是无线密码,可以任意设置。
今天我想让 phps 后缀的文件显示其源代码。网上搜索之,按照这里的修改:
location ~ \.phps$ {
fastcgi_pass backend;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SCRIPT_NAME $uri;
fastcgi_param SCRIPT_FILENAME /path/to/hightlight_source.php;
}
结果访问 phps 文件出现 Access denied.
查看错误日志,发现是 security.limit_extensions 配置的问题。
修改 /etc/php5/fpm/pool.d/www.conf ,修改配置为以下即可:
security.limit_extensions = .php .phps
同理,如果你想让 php5-fpm 处理后缀文件,在该行配置下添加相应后缀名即可。
感悟:看错误日志对于排错帮助很大,找到错误之处后再在网上找相应内容一般都能解决问题。
这是因为 post_max_size 的值小于 upload_max_filesize 的原因引起的。
默认 post_max_size=8M ,upload_max_filesize=2M 。当我将最大上传大小改为 10M 后,我再尝试上传大于 10M 的文件就出现如题的问题。
解决方法:
在 php.ini 设置,将 post_max_size 的值设置为大于 upload_max_filesize 的值。
用了 iconv 函数转码也不行。
后来发现问题了:没有在 html 头里进行文档编码描述。加上 <meta charset=”utf-8″> 然后就按我想象的正常工作了。
以后再也不能省事,因为少写了一些东西,我上网搜索半天,浪费了更多的时间。
我自己搭建的服务器,环境是:ubuntu server 12.10, apache2.2.22, php5.4.6
默认 apache 用户是:www-data
WordPress 安装插件时提示:要执行请求的操作,WordPress 需要访问您网页服务器的权限。 请输入您的 FTP 登录凭据以继续。 如果您忘记了您的登录凭据(如用户名、密码),请联系您的网站托管商。
导致此问题的原因是:apache 用户与网站目录文件所有者(网站文件所有者默认为 root)不一样。将网站目录文件所有者改为 www-data 即可解决问题。
chown -R www-data /var/www