Ubuntu上搭建PHP+Mysql+Nginx环境(apt-get方式)
Ubuntu上搭建PHP+Mysql+Nginx环境(apt-get方式)
ubuntu版本:Ubuntu 10.04 LTS
1、首先使用apt-get下载Nginx,php教程,mysql教程,phpmyadmin,spawn-fcgi。
sudo apt-get install nginx php5-cgi php5-cli mysql-server-5.1 phpmyadmin spawn-fcgi
期间可能要输入mysql的密码,按照提示一步一步安装就是了。
OK后,你在Firefox中访问http://127.0.0.1/或者http://localhost/应该就能看见Nginx的欢迎界面了。
2、此时Nginx并不能跑PHP程序。需要修改一些配置文件。
$ cd /etc/nginx
$ sudo vim fastcgi_params,修改如下(红色部分):
fastcgi_ignore_client_abort on;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
修改Nginx 配置文件nginx.conf
sudo vim nginx.conf,最后如下:
user codebean codebean; #用户和用户组
worker_processes 2;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
# multi_accept on;
}
http {
include /etc/nginx/mime.types;
access_log /var/log/nginx/access.log;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
tcp_nodelay on;
gzip on;
gzip_disable "MSIE [1-6].(?!.*SV1)";
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
3、接下来我们来配置一个默认站点:
cd /etc/nginx/sites-available
sudo vim default
修改后如下:
server {
listen 80 default; #default表示是默认站点
server_name localhost; #访问的名称
root /var/www/nginx-default; #网站根目录
access_log /var/log/nginx/localhost.access.log;
location / {
index index.php index.html index.htm;
}
location ~ .php$ {
include fastcgi_params; #这个很重要
}
}
接下来你在目录/var/www/nginx-default新建一个index.php,输入:
phpinfo();然后重启nginx服务和开启fastcgi:
$ sudo /etc/init.d/nginx restart
$ /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 /usr/bin/php-cgi
再访问http://127.0.0.1/或者http://localhost/看看
操作系统是 Windows XP 中文版, Apache, PHP, MySQL 的最新版本是截止到 2007.09.07,分别在其官网下载的:
* Apache 2.2.6:http://apache.mirror.111cn.net/httpd/binaries/win32/
* PHP 5.2.4 (Windows Binaries PHP 5.2.4 zip package): http://www.php.net/downloads.php
* MySQL 5.0.45 Windonws: http://dev.mysql教程.com/downloads/
为了方便维护,可以将服务器软件安装在系统盘(C盘)而把自己的文件定位到其他盘,这样对于以后的维护很重要。
Windows XP 下的安装
1. 运行 apache 2.2.6 的安装程序,根据提示一路 Next 即可。在 Server Information 的 Network Domain、Server Name 字段随便填上一个域名即可,如php.com,然后根据提示一路 Next 完成即可。
1. 将下载的 php 5 ZIP 包直接解压,我直接将 PHP 5.2.4 zip 文件解压到 d:php 目录下面。安装 php 不建议使用 win32 安装程序(主要是以后安装扩展麻烦)。
5. 配置 Apache 和 PHP
1. 找到:
PHPIniDir “D:/PHP”这个不要了,免得apache服务器启动不起
AddType application/x-httpd-php .html
6. 在你的网站目录中(例如我的是 E:/Web/),手工建立一个 index.php 的文件,内容:
phpinfo();
?>
C:Program FilesApache Software FoundationApache2.2bin> httpd -k stop
或者是:net stop apache2.2
C:Program FilesApache Software FoundationApache2.2bin> httpd -k start
或者是:net start apache2.2
MySQL 的安装比较简单,它提供了一个 win32 的安装包。下载后根据提示一路安装,也可以在安装类型处选 Custom,指定安装目录,这里直接默认安装在了C盘。
之前我曾经写过一篇名为《PHP 实现多服务器共享 SESSION 数据》文章,文中的 SESSION 是使用数据库教程保存的,在并发访问量大的时候,服务器的负载会很大,经常会超出 MySQL 最大连接数,利用 memcached,我们可以很好地解决这个问题,工作原理如下:
用户访问网页时,查看 memcached 中是否有当前用户的 SESSION 数据,使用 session_id() 作为唯一标识符;如果数据存在,则直接返回,如果不存在,再进行数据库连接,获取 SESSION 数据,并将此数据保存到 memcached 中,供下次使用;
当前的 PHP 运行结束(或使用了 session_write_close())时,会调用 My_Sess::write() 方法,将数据写入数据库,这样的话,每次仍然会有数据库操作,对于这个方法,也需要进行优化。使用一个全局变量,记录用户进入页面时的 SESSION 数据,然后在 write() 方法内比较此数据与想要写入的 SESSION 数据是否相同,不同才进行数据库连接、写入数据库,同时将 memcached 中对应的对象删除,如果相同的话,则表示 SESSION 数据未改变,那么就可以不做任何操作,直接返回了;
那么用户 SESSION 过期时间怎么解决呢?记得 memcached 的 add() 方法有个过期时间参数 $exp 吗?把这个参数值设置成小于 SESSION 最大存活时间即可。另外别忘了给那些一直在线的用户延续 SESSION 时长,这个可以在 write() 方法中解决,通过判断时间,符合条件则更新数据库数据。
今天我们就来看看win 下memcached的方法
将memcache服务器安装包解压到C:memcached文件夹后,使用cmd命令窗口安装。
1>开始>运行:CMD(确定)
2>cd C:memcached(回车)
3>memcached -d install(回车 这步执行安装)
4>memcached -d start(回车 这步执行启动memcache服务器,默认分配64M内存,使用11211端口)
此时memcache服务器已经可以正常使用了。
在服务端运行:
# ./memcached -d -m 2048 -l 10.0.0.40 -p 11211
这将会启动一个占用2G内存的进程,并打开11211端口用于接收请求。由于32位系统只能处理4G内存的寻址,所以在大于4G内存使用PAE的32位服务器上可以运行2-3个进程,并在不同端口进行监听。
又如:memcached -d -m 10 -u root -l 192.168.105.73 -p 12000 -c 256 -P /tmp/memcached.pid
-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,
-u是运行Memcache的用户,我这里是root,
-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.105.73 ,
-p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口,
-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,
-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid
memcache服务器安全:
Memcache服务器端都是直接通过客户端连接后直接操作,没有任何的验证过程,这样如果服务器是直接暴露在互联网上的话是比较危险,轻则数据泄露被其他无关人员查看,重则服务器被入侵,况且里面可能存在一些我们未知的bug或者是缓冲区溢出的情况,这些都是我们未知的,所以危险性是可以预见的。为了安全起见,做两点建议,能够稍微的防止黑客的入侵或者数据的泄露。
现在就关于修改memcache服务器配置的问题说明如下:
1>用内网ip的方式提供web应用服务器调用,不允许直接通过外网调用,如将memcache服务器放在192.168.1.55的服务器上
2>修改端口,如改为11200
3>分配内存,如分配1024M(1G内存)
方法如下:
1>开始>运行:CMD(确定)
2>cd C:memcached(回车)
3>memcached -m 1024 -p 11200 -l 192.168.1.55(回车)
注意,此时命令行不会回到C:memcached>状态,并且实际上memcache服务器悄悄变为stop状态了。此窗口不可以关闭。新开一个cmd窗口
4>开始>运行:CMD(确定)
5>cd C:memcached(回车)
6>memcached -d start(回车)可以关闭此cmd窗口。
此时可以使用新配置的memcache服务器了。
上述方法虽然解决了修改默认配置的问题,但是始终会有一个cmd窗口不可以关闭,否则就回到11211端口的默认配置。
更好的解决方案是通过修改服务的注册表配置:
1>开始>运行:regedit(回车)
2>在注册表中找到:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesmemcached Server
3>默认的ImagePath键的值是:"c:memcachedmemcached.exe" -d runservice,改为:"c:memcachedmemcached.exe" -d runservice -m 512 -p 11200 -l 192.168.1.55(确定,关闭注册表)
4>我的电脑(右键)>管理>服务 找到memcache的服务,重新启动一次即可生效。
此时,同网段内的电脑仍然可以利用这台memcache服务器,我们限定指定的web应用服务器才能够使用,通过防火墙的方式。如只允许192.168.1.2这台Web服务器对Memcache服务器的访问,能够有效的阻止一些非法访问,相应的也可以增加一些其他的规则来加强安全性,这个可以根据自己的需要来做。
Memcache服务器端都是直接通过客户端连接后直接操作,没有任何的验证过程,这样如果服务器是直接暴露在互联网上的话是比较危险,轻则数据泄露被其他无关人员查看,重则服务器被入侵,因为Mecache是以root权限运行的,况且里面可能存在一些我们未知的bug或者是缓冲区溢出的情况,这些都是我们未知的,所以危险性是可以预见的。为了安全起见,我做两点建议,能够稍微的防止黑客的入侵或者数据的泄露。
内网访问
最好把两台服务器之间的访问是内网形态的,一般是Web服务器跟Memcache服务器之间。普遍的服务器都是有两块网卡,一块指向互联网,一块指向内网,那么就让Web服务器通过内网的网卡来访问Memcache服务器,我们Memcache的服务器上启动的时候就监听内网的IP地址和端口,内网间的访问能够有效阻止其他非法的访问。
# memcached -d -m 1024 -u root -l 192.168.0.200 -p 11211 -c 1024 -P /tmp/memcached.pid
Memcache服务器端设置监听通过内网的192.168.0.200的ip的11211端口,占用1024MB内存,并且允许最大1024个并发连接
设置防火墙
防火墙是简单有效的方式,如果却是两台服务器都是挂在网的,并且需要通过外网IP来访问Memcache的话,那么可以考虑使用防火墙或者代理程序来过滤非法访问。
一般我们在Linux下可以使用iptables或者FreeBSD下的ipfw来指定一些规则防止一些非法的访问,比如我们可以设置只允许我们的Web服务器来访问我们Memcache服务器,同时阻止其他的访问。
# iptables -F
# iptables -P INPUT DROP
# iptables -A INPUT -p tcp -s 192.168.0.2 –dport 11211 -j ACCEPT
# iptables -A INPUT -p udp -s 192.168.0.2 –dport 11211 -j ACCEPT
上面的iptables规则就是只允许192.168.0.2这台Web服务器对Memcache服务器的访问,能够有效的阻止一些非法访问,相应的也可以增加一些其他的规则来加强安全性,这个可以根据自己的需要来做
很多时候需要监控服务器上的Memcached运行情况,比如缓存的查询次数,命中率之类的。但找到的
那个memcached-tool是linux下用perl写的,我也没试过windows能不能用。后来发现个简单的办法可以做到,就是使用Telnet。
1、windows系统连接memcached端口 cmd命令行中键入telnet 192.168.1.1 11211 11211是memcached绑定的端口号。
2、连接上端口后输入 stats命令,即可得到描述Memcached服务器运行情况的参数。
STAT pid 4356 服务器进程ID
STAT uptime 56625 服务器运行时间,单位秒
STAT time 1225249079 服务器当前的UNIX时间
STAT version 1.1.0 服务器的版本号
STAT pointer_size 64
STAT rusage_user 151.845489 该进程累计的用户时间(秒:微妙)
STAT rusage_system 121.667603 该进程累计的系统时间(秒:微妙)
STAT ibuffer_size 4096
STAT curr_connections 13 连接数量
STAT total_connections 54136 服务器运行以来接受的连接总数
STAT connection_structures 318 服务器分配的连接结构的数量
STAT cmd_get 100595 取回请求总数
STAT cmd_set 6510 存储请求总数
STAT get_hits 96543 请求成功的总次数
STAT get_misses 4052 请求失败的总次数
STAT bytes_read 4427679 服务器从网络读取到的总字节数
STAT bytes_written 6585596 服务器向网络发送的总字节数
1>、uptime 是memcached运行的秒数,
2>、cmd_get是查询缓存的次数。
3>、这两个数据相除一下就能得到平均每秒请求缓存的次数——最近niupu的流量很低,所以平均也就一秒请求一次多,
这么点大的压力,用文件系统缓存一样没问题,根本不会体现出使用memcached的优越。
4>、下面的cmd_set 就是设置key=>value的次数。整个memcached是个大hash,用cmd_get没有找到的内
容,就会调用一下cmd_set写进缓存里。
5>、紧跟着是get_hits,就是缓存命中的次数。缓存命中率 = get_hits/cmd_get * 100%。
6>、下面的get_misses的数字加上get_hits应该等于cmd_get。
7>、而total_itemscurr_items表示现在在缓存中的键值对个数.
8>、在图上total_items == cmd_set == get_misses,不过当可用最大内存用光时,memcached就会删掉一些内容,上面的等式就不成立了
好了,下面来段测试代码
<?php教程
// 包含 memcached 类文件
require_once(‘memcached-client.php’);
// 选项设置
$options = array(
’servers’ => array(‘192.168.1.1:11211′), //memcached 服务的地址、端口,可用多个数组元素表示多个 memcached 服务
‘debug’ => true, //是否打开 debug
‘compress_threshold’ => 10240, //超过多少字节的数据时进行压缩
‘persistant’ => false //是否使用持久连接
);
// 创建 memcached 对象实例
$mc = new memcached($options);
// 设置此脚本使用的唯一标识符
$key = ‘mykey’;
// 往 memcached 中写入对象
$mc->add($key, ’some random strings’);
$val = $mc->get($key);
echo “n”.str_pad(‘$mc->add() ’, 60, ‘_’).“n”;
var_dump($val);
// 替换已写入的对象数据值
$mc->replace($key, array(’some’=>‘haha’, ‘array’=>‘xxx’));
$val = $mc->get($key);
echo “n”.str_pad(‘$mc->replace() ’, 60, ‘_’).“n”;
var_dump($val);
// 删除 memcached 中的对象
$mc->delete($key);
$val = $mc->get($key);
echo “n”.str_pad(‘$mc->delete() ’, 60, ‘_’).“n”;
var_dump($val);
?>
Memcache 方法列表:
Memcache::add — Add an item to the server
Memcache::addServer — Add a memcached server to connection pool
Memcache::close — Close memcached server connection
Memcache::connect — Open memcached server connection
memcache_debug — Turn debug output on/off
Memcache::decrement — Decrement item’s value
Memcache::delete — Delete item from the server
Memcache::flush — Flush all existing items at the server
Memcache::get — Retrieve item from the server
Memcache::getExtendedStats — Get statistics from all servers in pool
Memcache::getServerStatus — Returns server status
Memcache::getStats — Get statistics of the server
Memcache::getVersion — Return version of the server
Memcache::increment — Increment item’s value
Memcache::pconnect — Open memcached server persistent connection
Memcache::replace — Replace value of the existing item
Memcache::set — Store data at the server
Memcache::setCompressThreshold — Enable automatic compression of large values
Memcache::setServerParams — Changes server parameters and status at runtime
.mysql教程
在如下页面下载mysql的for linux rpm包
http://www.mysql.com/downloads/down...3.52-1.i386.rpm
http://www.mysql.com/downloads/down...3.52-1.i386.rpm
存至/home/tmp目录
命令列表:
cd /home/tmp
rpm -ivh mysql-3.23.52-1.i386.rpm //#安装mysql server
rpm -ivh mysql-client-3.23.52-1.i386.rpm //#安装mysql client
/usr/mysql/safe_mysqld & //#启动mysql server
mysql //#运行mysql 客户端,并开放root用户的远程访问权限,以便调试
use mysql
update user set host = '%' where user = 'root' and host <> 'localhost';
flush privileges;
quit //至此mysql安装完成
2.apache
在如下页面下载apache的for linux 的源码包
http://www.apache.org/dist/httpd/apache_1.3.26.tar.gz
存至/home/tmp目录
命令列表:
cd /home/tmp
tar -zxvf apache_1.3.26.tar.gz
mv apache_1.3.26.tar.gz apache
cd apache
./configure --prefix=/usr/local/apache --enable-module=so
make
make install 安装apache至/usr/local/apache //并配置apache支持dso方式
3.php教程
在如下页面下载php的for linux 的源码包
http://www.php.net/get_download.php?df=php-4.2.3.tar.gz
存至/home/tmp目录
命令列表:
cd /home/tmp
tar -zxvf php-4.2.3.tar.gz
mv php-4.2.3.tar.gz php
cd php
./configure --prefix=/usr/local/php --with-apxs=/usr/local/apache/bin/apxs --with-config-file-path=/usr/local/lib --enable-track-vars --with-xml --with-mysql
make
make install
cp php.ini-dist /usr/local/lib/php.ini
以dso方式安装php至/usr/local/php 设置配置文件目录为/usr/local/lib 开启mysql,xml支持
4.配置
vi /usr/local/apache/conf/httpd.conf
对apache做如下配置
#将ServerAdmin q3boy@younet.com一行改为您的邮箱地址
#DocumentRoot "/home/httpd/html/" 此处为html文件主目录
# 同上
#Options FollowSymLinks MultiViews 为安全起见,去掉"Indexes"
#
# DirectoryIndex default.php default.phtml default.php3 default.html default.htm
#
#设置apache的默认文件名次序
#AddType application/x-httpd-php .php .phtml .php3 .inc
#AddType application/x-httpd-php-source .phps教程
#设置php文件后缀
存盘退出
vi /usr/local/lib/php.ini
#register-golbals = On //存盘退出
5.启动服务
/usr/local/apache/bin/apachectl start
6.备注
apache在linux下的默认最大进程数为256,无论如何修改httpd.conf都不能超过这个限制。如果想加大这个限制,在编译 apache前编辑/home/tmp/apache/src/include/httpd.h,将其中#define HARD_SERVER_LIMIT 256 一行改为#define HARD_SERVER_LIMIT 2048后再编译apache,
apache 1.3.26中mod_so似乎已经不是默认模块了。编译时候需加上--enable-module=so,我第一次编译没加此参数,结果php编译时无法找到apxs
php 4.2.3中默认配置文件路径似乎变了。编译时需加上 --with-config-file-path=/usr/local/lib 参数,我第一次编译完php.ini放了n个地方都没有用。不得已。只能加上这个参数。
p.s. 不保证本文所述步骤适用于其他版本
附:相关文件下载地址
php: http://www.php.net/get_download.php?df=php-4.2.3.tar.gz
apache: http://www.apache.org/dist/httpd/apache_1.3.26.tar.gz
mysql server:http://www.mysql.com/downloads/down...3.52-1.i386.rpm
mysql client: http://www.mysql.com/downloads/down...3.52-1.i386.rpm
- 编译php更方便了,不需要libmysql,已经内置在源码中
- 使用php许可,避免版权问题
- 使用php的内存管理,支持php内存限制(memory_limit)
- 所有数据在内存只有一份,之前的libmysql有两份,参考上图
- 提供性能统计功能,帮助分析瓶颈
- mysqli支持长连接(persistent connections)
- 性能绝对比libmysql要快
- 在驱动层增加缓存机制
- md5()大概提高了10%-15%的性能
- Better stack implementation in the engine,没明白
- 常量保存在ROM里(Constants moved to read-only memory),这里没明白意思
- 改进异常处理,操作码(opcode)更简洁
- 解决了include(require)_once重复打开的问题,之前once我都是用静态变量实现的,终于解决这个问题了
- 用gcc4编译的二进制文件将更小
- 整体性能提高了5%-15%
四、名字空间(namespace)
五、延迟静态绑定(Late Static Binding)
class ParentClass { |
class ParentClass { |
$date = strtotime("08-01-07 00:00:00");//php 认为格式 是年-月-日 |
$lambda = function () { echo "Hello World!n"; }; |
function replace_spaces ($text) { |
function replace_spaces ($text) { |
function (normal parameters) use ($var1, $var2, &$refvar) {} |
$foo = <<this is $fubar |
$bar = <<<'TWO' this is $fubar TWO; |
php的GC机制采用引用计数机制,引用计数是很简单高效的GC机制,不过缺点也很明显,不能完全回收所有已无效的变量,例如变量相互引用了,就无法回收了,5.3里加入的GC函数,其实就是起到增强GC机制的作用。
gc_enable(); // 激活GC,增强GC机制,回收循环引用的无效变量 |
相关文章
- 我们经常会在网站中看到可以直接把网站以快捷方式保存到自己的电脑中,然后只要点击就可以实现进入网了,那么php中怎么把网页添加到桌面快捷方式呢。 功能简单,直接上...2016-11-25
PHP用DOM方式处理HTML之《Simple HTML DOM》
近经常需要采集一些网上的数据,发现一个PHP处理HTML的利器 simple html dom,看了一下文档,使用非常方便,关键是能够用CSS选择器来访问DOM树,和jquery相似,实在是难得的利器...2016-11-25- photoshop的直排文字工具,打出的字特别是英文字母,默认排列侧向的,如何调整为正向排列呢?下面我们就来看看标准的罗马对齐方式应该怎么设置。 1、在PS中点击“工具面...2017-01-22
- 这篇文章主要介绍了 判断页面访问方式电脑或者移动端的相关资料,这里提供了三种方法,需要的朋友可以参考下...2016-10-03
Ubuntu Server 18.04.5 LTS服务器版安装配置图解教程
Ubuntu分为桌面版(desktop)和服务器版(Server),下面为大家介绍服务器版本Ubuntu Server 18.04.5 LTS的详细安装过程,需要的朋友可以参考下...2021-02-01- 下面小编就为大家带来一篇Angularjs---项目搭建图文教程。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-07-25
- 这篇文章主要介绍了Linux环境下nginx搭建简易图片服务器,需要的朋友可以参考下...2016-01-27
- 下面小编就为大家带来一篇详谈Ubuntu PowerShell(小白入门必看教程)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-30
- 这篇文章主要给大家介绍了关于node.js利用express自动搭建项目的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-04-09
- 今天工作中需要对一台ubantu的系统安装mysql,因为以前一直使用的是centos,虽然它也是类unix但是和redhat或centos命令上还是有点差别。所以通过网上查阅资料,终于安装成功了,现在将步骤分享给大家,有需要的朋友们可以参考借鉴。...2016-10-20
- 这篇文章主要介绍了前端自动化开发之Node.js环境搭建的相关资料,文中介绍的非常详细,对大家学习或者使用node.js具有一定的参考价值,需要的朋友们下面来一起看看吧。...2017-04-03
- 这篇文章主要介绍了phpstudy2020搭建站点的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-10-30
- 这篇文章主要给大家介绍了关于如何使用Vim搭建Lua开发环境的相关资料,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧...2020-06-30
- 这篇文章主要介绍了快速使用Bootstrap搭建传送带的相关资料,非常具有参考借鉴价值,需要的朋友可以参考下...2016-05-09
详解ASP.NET Core部署项目到Ubuntu Server
这篇文章主要介绍了详解ASP.NET Core部署项目到Ubuntu Server ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-22详解Ubuntu Server下启动/停止/重启MySQL数据库的三种方式
本篇文章主要介绍了buntu Server下启动停止重启MySQL数据库的三种方式,具有一定的参考价值,有兴趣的可以了解一下。 ...2017-01-15Ubuntu上配置Ruby on Rails框架及RubyMine IDE开发环境
Ruby on Rails是Ruby世界中当仁不让的Web框架代表,甚至可以说Rails推动了Ruby的流行,这里我们就来看一下如何在Ubuntu上配置Ruby on Rails框架及RubyMine IDE开发环境...2020-06-30- 小编推荐的这篇文章介绍了css的四种隐藏方式,有需要的同学赶快来看看吧 1.opacity:0只是把元素隐藏起来了 ,但是还是占有布局,所以还是对布局有影响 ...2017-01-22
- 这篇文章主要介绍了php创建桌面快捷方式实现方法...2016-01-04
Ubuntu配置Pytorch on Graph (PoG)环境过程图解
这篇文章主要介绍了Ubuntu配置Pytorch on Graph (PoG)环境过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-11-19