(lamphc0)配置服务器及服务器端的开发环境=>长期更新

时间:2022-04-09 03:07:37

0.0.0 apache2 配置文件

apache 的普通发行版配置文件都是 httpd.conf

然而在ubuntu(以v14.04为例)的版本里,却是分散开的。
在配置目录里的主配置文件叫做apache2.conf
它通过 inlude 将其他相关文件包含进来(比如.\sites-available\000-default)
配置时,可以把其他无关的比如site-available注释掉,自己新建一个httpd.conf,然后在apache2.conf里添加

Include httpd.conf

在httpd.conf文件里少不得加上

Servername 127.0.0.1
DocumentRoot xxxxx

注意:目录表示需要绝对路径,也不能用“~/“表示当前用户主目录

0.0.0.0开启目录浏览

修改文件

/etc/apache2/apache.conf

找到服务器根目录行

<Directory />

将下面的

Options FollowSymbolic

改为

Options Indexes FollowSymbolic

然而此时仍然不行,当所浏览的目录里有与apache配置文件里默认首页重名的文件(index.html,index.php etc)时,仍然无法开启目录浏览。
可以注释掉配置里的默认首页名
对于非Ubuntu的Linux
修改apache默认主页要修改两个文件:

    /httpd/conf/httpd.conf  
/httpd/conf.d/php.conf (index.php覆盖了httpd.conf)

其余诸如.cgi .hml如果有的话也相应修改

对于Ubuntu
假设我们的apache配置目录是/etc/apache2

/etc/apache2/mods-enabled/dir.conf: DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
/etc/apache2/mods-available/dir.conf: DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm

修改这两个文件的 DirectoryIndex 后的文件名。

通用
假设我们的apache配置目录是/etc/apache2

-i:包括链接
-r:递归查找

    grep -iR DirectoryIndex /etc/apache2

查看 DirectoryIndex 在apache2哪个文件里面。

重启命令
sudo /etc/init.d/apache2 restart

还有一个其他博文里反复抄袭的一点,sites-enabled 文件夹里的配置文件其实是指向sites-available文件夹里配置文件的链接,而本体文件必须依靠链接才起作用。
最后可能需要把apache服务器根目录下的Index.html删掉

0.0.1 配置php mail函数

其实也是配置系统函数mail的过程

0.0.1.0只是发邮件的话可以利用外部的SMPT服务器,详情参照以下博文(居然也是转发)

http://blog.csdn.net/chb2000/article/details/6326500

0.0.1.1但我们显然是想利用本机作为SMTP服务器(Ubuntu为例)

0.0.1.1.0首先安装mail 功能 and sendmail组件

mail功能

sudo apt-get install mailutils  
sudo apt-get install sharutils

sendmail组件

sudo apt-get install sendmail
sudo apt-get install sendmail-cf
0.0.1.1.1 修改mail配置,使发送方不限于本地用户,而是整个Internet

修改文件

/etc/mail/sendmail.mc

找到如下一行

DAEMON_OPTIONS(`Family=inet,  Name=MTA-v4, Port=smtp, Addr=127.0.0.1')

将Addr的值修改为 0.0.0.0

执行如下操作

mv sendmail.cf sendmail.cf~      //做一个备份  
m4 sendmail.mc > sendmail.cf //生成新的配置文件(m4 是一个宏处理器,Ubuntu默认安装了)
0.0.1.1.2 修改域名、主机名,使邮件成功发送

1、假设我们的域名叫做 ming.com (如果不是真实的服务器,域名爱怎么写怎么写,只是别人无法从外网访问而已)(但是话虽这样讲,随便写也要写成一个域名格式的,否则服务启动速度很慢)
2. 假设我们的主机名为 zhuang-virtual-machine

修改文件

/etc/mail/local-host-names

找到包含如下内容,但可能不是其全部内容的一行

127.0.0.1    localhost

改为

127.0.0.1 ming.com localhost zhuang-virtual-machine

修改文件

/etc/mail/access

找到如下一行

Connect:localhost RELAY

在其下添加一行内容如下:

Connect:ming.com

修改文件

/etc/mail/local-host-names

添加一行:

ming.com

重启sendmail 服务

sudo service sendmail restart
0.0.1.1.3用mail发送邮件进行测试

常用发送邮件方式如下:
假设我们的测试邮箱为:test@126.com

1.如何写一般的邮件: mail test@126.com  Cc 编辑抄送对象,Subject:邮件主题,输入回车,邮件正文后,按Ctrl-D结束

2.快速发送方式: echo “邮件正文” | mail -s 邮件主题 test@126.com

3.以文件内容作为邮件正文来发送: mail -s test test@126.com < test.txt

4.发送带附件的邮件: uuencode 附件名称 附件显示名称 | mail -s 邮件主题 发送地址

例如: uuencode test.txt test.txt | mail -s Test test@126.com

查看接收到的邮件用

mail

输入邮件的序号进行查看

0.0.1.1.4 php方面的配置

修改php配置文件(目录大概并不完全相同,总之就是php目录下的 apache2分目录下或主目录下的 php.ini文件)

/etc/php5/apache2/php.ini 

仔细找到如下一行

;sendmail_path=

将分号去掉,改为如下内容

sendmail_path=/usr/sbin/sendmail -i -t

多参数,少参数都不行

重启php进程(如果还在运行的话)
一般是:service php restart
LNMP是:service php-fpm restart
Apache下可以:service httpd restart

测试文本,放到apache服务器工作目录

<?php
$send = mail('test@126.com','TEST','Can you receive Me?');
if($send){
echo 'send email successful!';
}
else{
echo 'send mail failed';
}
?>

1.0.0 MySQL 安装使用

1.0.0.0MySQL 安装

sudo apt-get install mysql-server mysql-client

安装过程会提示输入root用户的密码,这里假设密码是123456

1.0.0.1终端登陆

以root账户登陆

mysql -u root -p
123456

注:-p123456 可以直接登录 ,但密码与-p参数之间不能有空格

1.0.0.2创建一个数据库

假设数据库名为 aliendb(外星人数据库)

        create database aliendb;

选中这个数据库

        use aliendb;

创建表

        create table alien_table (
name varchar(30),
how_they_did varchar(50)
);

1.0.0.3新建普通用户

假设用户名是 ming
假设密码是 123456
假设只允许从本地登录 localhost(允许任何任何外机是%)

    insert into mysql.user(Host,User,Password) values ('localhost','ming',password('123456');

password()将明文密码转为哈希值

然而
1. 修改用户,修改权限等操作之后,必须手动刷新

    flush privileges

否则会出现诸如 Error (1133): Can’t find any matching row in the user table 等错误
2.

    exit

退出后,重新用ming 重新登录发现错误,ERROR 1045 (28000): Access denied for user ‘ming’@’localhost’ (using password: YES)

原因比较细节请参照这篇博文
就是需要赋予新建用户ming某个数据库上的权限

只好用root重新登录,然后赋予权限

    grant select,insert,update,delete on aliens_abduction.* to ming@localhostidentified by '123456';

MySQL 赋予用户权限命令语法为:

    grant 权限 on 数据库对象 to 用户;
grant 权限 on 数据库对象 to 用户 identified by “密码”;
grant 权限 on 数据库对象 to 用户@”ip” identified by “密码”

查看MySQL 用户权限:

    show grants for ming@localhost;

仍然不要忘记刷新,之后ming就可以登陆了。

所以推荐直接用grant 创建新用户

    grant select,update on *.* to 'ming'@'localhost' identified by password('123456');

详情参见这里

2.0.0php5安装使用

2.0.0.0 php5安装

2.0.0.1 php5使用(结合MySQL)

Care:php中的sql查询语句最后可以加分号,也可以不加