这篇博客,就一直更新吧,把平时项目中遇到的linux问题及解决方法都贴在这,以供自己以后查看。
1、linux和windows共享目录时,目录名最好不要有数字,不然的话apache识别有问题。一般目录共享后会在/mnt/hgfs目录里生成一个windows环境上的目录,如共享的目录为server,但如果同时又在另一个盘里共享了同名的server目录,这时得注意了,不要按照虚拟机上默认目录来,一般虚拟机默认为server-1,去掉数字,改个名称即可。我遇到的问题是按照虚拟机的默认名称,在thinkphp框架下识别不出目录。
2、在svn环境下,使用php列出所有文件时,得过滤掉.svn的,不然会有问题的。我遇到的问题的是在本地和本地虚拟机上可以列出目录下的所有文件,但放在服务器上,别啥也显示不出,追了下,发现就只过滤了 . 和 .. ,没有过滤 .svn的,加上这个条件后,便出来了。(原来php环境和虚拟机的共享目录,在虚拟机上运行,是检查不出那个.svn的)
3、在ngnix中遇到504 Gateway Time-out,一开始以为是网上所形容改写nginx.conf的配置参数,后来发现不是,因为改了之后,还是这个情况,如果细心查找,发现了问题所在,原来是代码一开始在另一个服务器,mysql的地址就形成了该服务器的ip,代码移植时忘了修改mysql的主机地址。
4、项目移植后,敲上地址后,发现网上报错,调出控制台发现原来服务器的不支持重写,于是去apache配置文件里打开rewrite.so,把AllowOverride None改为AllowOverride ALL,重启apache,就ok了。
5、发现在服务器上file_put_contents写入不了文件,于是百度之,才知道文件的所属权限不够,改为777就可以了,但是还是有一点小疑问,那就是有的文件可以写入,也就是权限没有修改之前,看来得等以后只是储备多了,再回过头来解决了。
6、最近都在看《鸟哥的私房菜》,发现里面的内容确认帮助了我很多,如,由于工作性质,需经常用putty远程登录服务器,但有时看到的中文都显示乱码,一开始也不知道怎么改,看了相关章节后,发现可以在命令行上敲入LANG="zh_CH.UTF-8",回车就ok了,当然了这个只是针对本次登录。
7、启动mysql的时候报‘mysql deamon failed to start’,这是selinux在作祟,关掉它即可,setenforce 0,或是在其配置文件内/etc/selinux/config,把SELINUX=enforcing,改为SELINUX=disabled,重启即可
8、新装的服务器,在cli(命令行)模式下,进入不了mysql,后来百度了下,这么写 mysql -uroot -p -S /data1/mysql/mysql.sock(my.cnf指定sock的地址),用phpmyadmin登不进去,提示2002,只需在phpmyadmin目录下找到config.default.php,编辑,把$cfg['Servers'][$i]['host'] = 'localhost';改为$cfg['Servers'][$i]['host'] = '127.0.0.1';
9、Linux上对于文件名是区分大小写的,尤其是代码从Windows上移植到Linux时,一定得注意这个,否则会出现“明明在本地(Windows)好好的,上传到服务器就不显示了呢”。
10、删除软连接,若是Data目录有个软连接目录Uploads,删除时使用rm -rf Uploads,一定不能用rm -rf Uploads/,后者会让指定的目录被删除。
11、网站打不开,进入服务器后发现只能使用cd、ls简单操作命令,连vi、cat、du等命令都没有用,而且在删除文件时提示“只读系统”,在网上查了下说是要重启服务器,拔下硬盘,试了下果真有用,但其问题的原因还是没有找到。
12、使用yum安装lanmp环境,之后把项目放进去,提示“系统不支持mysql”,打开phpmyadmin,也提示缺少mysqli扩展,后在服务器的/usr/lib64/php/modules目录查看是否安装了相关的mysql扩展,果真没装,使用yum -y install php-mysql,安装成功后,重启相关服务器,就ok了。
13、配置好虚拟机上的lanmp环境后,打开phpmyadmin,输入用户名密码,死活都进不去,提示“无法登录 MySQL 服务器”,后来在网上搜了下,找到了一个解决办法
将 “phpMyAdmin/libraries”文件夹下的config.default.php文件中的 $cfg['Servers'][$i]['host'] = 'localhost'; 修改为 $cfg['Servers'][$i]['host'] = '127.0.0.1';
14、禁止用户通过网页浏览服务器目录
<Directory "/data1/wwwroot"> # # Possible values for the Options directive are "None", "All", # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # Note that "MultiViews" must be named *explicitly* --- "Options All" # doesn't give it to you. # # The Options directive is both complicated and important. Please see # http://httpd.apache.org/docs/2.2/mod/core.html#options # for more information. # Options -Indexes FollowSymLinks # # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # AllowOverride all # # Controls who can get stuff from this server. # Order allow,deny Allow from all </Directory>
15、使用sudo提示用户不在sudoers文件中的解决方法
chmod 777 /etc/sudoers vim /etc/sudoers username ALL=(ALL) ALL chmod 440 /etc/sudoers
16、杀掉nginx进程后丢失nginx.pid,如何重新启动nginx
nginx -c /path/to/config/nginx.conf nginx -s reload