debian+nginx+php->mysql
目录
- Debian安装与配置
- nginx安装与配置
- php安装
- 安装并配置mariadb
- 简单的php读取数据库的例子
Debian安装与配置
安装过程没有选桌面环境,只选了ssh服务和基本组件。
刚装好debian就发现,它会自动休眠。一个服务器会自动休眠,这是什么鬼逻辑?
查了网上的帖子,做以下修改:
$ sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
以下命令查看状态:
$ systemctl status sleep.target
按中科大源的说明,在/etc/apt/sources.list.d/中建立ustc.list文件,内容如下:
deb http://mirrors.ustc.edu.cn/debian stable main contrib non-free
deb http://mirrors.ustc.edu.cn/debian stable-updates main contrib non-free
然后更新索引:
$ sudo apt update && sudo apt upgrade
nginx安装与配置
接下来安装nginx
$ sudo apt install nginx
安装完成后nginx会自动启动。
默认的主目录/var/www/html/中有index.nginx-debian.html,这个文件名在nginx配置文件的index段里。
/etc/nginx/nginx.conf是nginx的配置文件,其中http段的最后有两句:
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
nginx建议为不同的虚拟服务器单独做配置文件,放到/etc/nginx/sites-enabled/目录,便于管理。
但是,default却是在/etc/nginx/sites-available/中,/etc/nginx/sites-enabled/只是一个链接。
php安装
安装php、php7.4-fpm和php7.4-mysql
$ sudo apt install php php7.4-fpm php7.4-mysql
然后编辑/etc/nginx/sites-available/default,将location ~ \.php$段改成以下:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
启动php7.4-fpm服务:
$ sudo service php7.4-fpm start
重启nginx服务:
$ sudo service nginx restart
测试php是否安装成功,在网站主目录/var/www/html/中创建info.php文件,内容如下:
<?php phpinfo() ?>
然后在浏览器中打开以下网页:
http://192.168.2.3/info.php
如果出现php的信息,则说明已经配置完毕了。
安装并配置mariadb
由于本次学习是要连接到远程的数据库,所以要在其他电脑上安装mariadb,以下是在debian系统上安装mariadb的命令:
$ sudo apt install mariadb-server
debian下安装mariadb后会自动启动,使用以下命令可以进入数据库,不需要账号密码:
$ sudo mysql
在mariadb中创建database:
> create database testdb;
在testdb中创建表:
> create tabel testdb.testtable (id int unsigned auto_increment,name varchar(100) not null ,primary key (id));
在表testdb.testtable中插入一条记录:
> insert into testdb.testtable(name) values('testname');
创建一个操作此数据库的账户,并允许它从任何地方访问数据库:
> create user testuser identified by '123456';
> grant all on testdb.* to testuser;
查看mysql的配置文件,确保允许用户从其他机器访问。
对于FreeBSD,应检查/usr/local/etc/mysql/conf.d/server.cnf文件,确保屏蔽掉“bind-address”行。
如有必要,可在web服务器上安装mariadb-client,然后使用mysql -h <数据库IP> -u testuser -p命令看是否能登录进数据库。
简单的php读取数据库的例子
<?php
$servername = "192.168.5.99";
$username = "testuser";
$password = "123456";
$conn = new mysqli($servername,$username,$password);
if (!$conn){
die("连接失败:". mysqli_connect_error());
}
echo "连接成功”."</p>";
$sql = "select * from testdb.testtable";
$result = mysqli_query($conn,$sql);
if(mysqli_num_rows($result)>0){
while($row=mysql_fetch_assoc($result)){
echo "id:".$row["id"]." name:".$row["name"]."<br>";
}
}
mysqli_close($conn);
?>
输出结果为:
连接成功
id:1-name:testname
id:2-name:testname2
id:3-name:张三
回主站