php开发总结
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=shared,mysqlnd && make -j4 && make install
一、Windows 下环境配置
为了快速入门,不建议初学者在工具上花费大量时间,可以安装整合环境 ZppServ 或 XAMPP ,这里以 ZppServ 为例。
1、下载 appserv:
http://www.appservnetwork.com/
我这里下载了 appserv-win32-2.5.10.exe,安装很简单,默认安装路径为 "C:\AppServ", 中间会提示输入初始 MYSQL 密码和 Apache 端口号,对于 Apache 端口号,默认是 80,建议改为 8080,除非你确定你的机器上的 80 端口没有被 IIS 或迅雷或其它程序占用。安装好 appserv 之后,在系统服务列表里,Apache2.2 和 mysql 服务会自动启动。此时在浏览器中使用 http://127.0.0.1:8080/phpinfo.php 如果能输出 php 版本信息,则表示环境配置成功,网站根目录默认为 "C:\AppServ\www",此时就可以立即进行 php 开发了。
2、最强 PHP 开发 IDE:Zend Studio (对于初学者,也可以直接跳过此工具,使用 UE 或者更简单的工具来编写)
<1>、下载 Zend Studio:
http://www.zend.com/en/products/studio/
我这里下载了 ZendStudio-without-JRE-10.1.0.msi ,从文件名可以看出来,这是不带 jre 的版本,所以你还需要从 http://www.java.com/zh_CN/ 下载 JAVA,建议使用 P2P 工具下载离线包来提升下载速度,然后分别安装好 JAVA 和 ZendStudio(安装顺序随意)。
<2>、汉化包下载地址:
解压后的文件夹名为 juno,运行 Zend Studio,先点试用打开主界面,选择Help菜单->Install New Software,调出框中点击 ”Add“->"Local...",选择 juno 文件夹,确定之后会列出可选语言包列表,选择 ”Babel Language Packs in Chinese (Simplified)“ ,不断下一步即可完成汉化。
若不能搞定可参考:http://blog.csdn.net/sn_keys/article/details/9090995 (如果此链接还未失效的话)
<3>、破解文件下载:
这个直接百度 “Zend Studio 10.1 注册机“ 下载,下载的文件包里会有三个文件,分别是 ”com.zend.php.core_10.1.0.201306250232.jar“,”sn.txt“ 和 ”keygen.jar“,一般情况下直接把第一个文件复制到 Zend Studio 安装目录下的 plugins 文件夹下,即可完成破解。如果不行,再手动使用 sn.txt 中的注册码或运行 ”keygen.jar“ 注册机来完成注册。
注意:建议先汉化再注册,否则可能会在汉化之后,发现原先已经成功注册的信息失效,且可能再也注册不成功。
3、php 的 memcache 扩展
如果项目中需要使用 memcache,先下载与 php 版本对应(主版本和次版本相同)的 php_memcache.dll ,放到 php5\ext 目录下,修改 php.ini 文件,加入一行 ‘extension=php_memcache.dll’,然后重启 Apache,然后查看一下 phpinfo,如果有memcache,那么就说明安装成功。
php_memcache.dll 下载地址:
找到相应版本,如 pecl-5.2.6-Win32.zip,解压之后里面就有 php_memcache.dll。
测试代码(前提是 memcached 服务器正常开启,关于 memcached 服务搭建见下面 Linux 环境配置部分):
<?php
$mem = new Memcache();
$mem->addserver("10.10.10.10", );
$mem->set("mykey", "This is a test cache!", , );
$val = $mem->get("mykey");
echo $val;
?>
二、linux下环境配置
1、Apache 服务器配置
下载地址:
http://httpd.apache.org/download.cgi
在安装 Apache 之前需要依次安装 APR、APR-util 、APR-iconv ,下载地址:
http://apr.apache.org/download.cgi
wget https://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.5.2.tar.bz2
wget https://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-util-1.5.4.tar.bz2
wget https://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-iconv-1.2.1.tar.bz2
安装 APR使用 ./configure && make && make install , 安装后面两个使用 ./configure --with-apr=/usr/local/apr && make && make install
还需要安装 pcre,下载地址:
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/
安装过程都是标准的 ./configure && make && make install
安装 Apache ,需要先 ./configure --prefix=/usr/local/apache2 --enable-module=shared,表示Apache可以动态的加载模块,否则不能使用 php。
如果提示找不到 apr 之类的,可以在 configure 时加上
./configure --prefix=/usr/local/apache2 --enable-module=shared --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr/bin/apr--config #--with-pcre=/usr/local/pcre
如果编译时还报错 [htpasswd] Error 1 (亚马逊云主机遇到此问题),则通过 locate 找到 libexpat.so、libm.a、libm.so,然后
ln -s /usr/lib64/libm.a /usr/lib/libm.a
ln -s /usr/lib64/libm.so /usr/lib/libm.so
ln -s /usr/lib64/libexpat.so /usr/lib/libexpat.so
原因是 configure 时默认找 /usr/lib/ 目录,而不是 /usr/lib64 目录。
但是!这个问题貌似用上面的方法解决不了!此时,需要把 apr 和 apr-utils 解压到 srclib/ 目录下, 再重新配置编译即可。
直接参考官方的安装说明:http://httpd.apache.org/docs/2.4/install.html
cp apr-1.4. httpd/srclib/apr -r
cp apr-util-1.5. httpd/srclib/apr-util -r
./configure --prefix=/usr/local/apache2 --enable-module=shared
建立软链接,方便控制 apache 服务:
ln -s /usr/local/apache2/bin/apachectl /usr/bin/apachectl
控制 apache 服务的命令:apachectl start/stop/restart,(apachectl graceful 可以重启服务却不中断连接,这是最好的重启手段)如果启动过程中出现:
Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message.
则找到并编辑 httpd.conf 文件(最简单的找法,先 updatedb,再 locate httpd.conf,或者通过 /usr/bin/apachectl -V 来查看相关信息),找到 "#ServerName www.example.com:80" 这一行,修改成 "ServerName `自己的IP`:80" ,然后重启 apache 服务即可。
安装 Apache 为 httpd 系统服务:
cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd
这样就可以使用 service httpd start/stop/restart 来控制 apache 服务了。接下来将 httpd 服务加入到开机启动:
chkconfig --add httpd
会提示 "httpd 服务不支持 chkconfig",接下来添加下支持,vim /etc/init.d/httpd ,加入下面两句:
#chkconfig:345 85 15
#description:Start and stop the Apache HTTP Server
chkconfig:345 85 15 中的 345 代表在设置在那个level中是on的,如果要全部 off 就设为"-",如:chkconfig: - 85 15,后面两个数字代表S和K的默认排序号(启动:S 杀死:K)
再重新执行:
chkconfig --add httpd
chkconfig httpd on
使用 chkconfig --list httpd 检查 httpd 服务在各个运行级别下的状态。
安装 https 模块
安装 mod_ssl.so 模块,可以在安装 apache 时指定,如果在安装 apache 时未指定,又不想重装的话,可以进行动态安装,进入到 apache 源码路径(注意是源码路径,不是安装路径),如
/opt/httpd-2.4.20/modules/ssl ,然后执行:
/usr/local/apache2/bin/apxs -a -i -c -L/usr/lib/openssl/engines/lib -c *.c -lcrypto -lssl -ldl # 注:/usr/local/apache2 是安装路径
安装完成后,重启 apache 服务即可生效。
接下来生成 https 需要的密钥证书文件:
openssl genrsa > server.key //生成密钥
openssl req -new -key server.key > server.csr //生成证书请求文件,该步骤需要按提示提交一些信息
openssl req -x509 -days -key server.key -in server.csr > server.crt //生成证书
将上面生成的文件,放到 /usr/local/apache2/conf 目录下(假设apache的安装目录是 /usr/local/apache2),然后修改 extra/httpd-ssl.conf 文件,删掉下面两行的注释,让其可用:
SSLCertificateFile /apache/conf/server.crt
SSLCertificateKeyFile /apache/conf/server.key
修改 httpd.conf 文件,载入 ssl 模块:
LoadModule ssl_module modules/mod_ssl.so
导入 ssl 配置文件
Include conf/extra/httpd-ssl.conf
配置 VirtualHost
<VirtualHost *:>
ServerName www.yourdomain.com
DocumentRoot htdocs <Directory wiki>
Order deny,allow
Allow from all
</Directory>
</VirtualHost> <VirtualHost *:>
ServerName www.yourdomain.com
DocumentRoot htdocs <Directory PasswordGame>
Order deny,allow
deny from all
</Directory>
</VirtualHost>
配置完后,重启 apache 服务即可。
2、MYSQL 服务器配置
下载地址:
http://dev.mysql.com/downloads/mysql
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
make
make install
此处的 cmake 参数(具体还有哪些,我也不知道……待弄清):
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql //安装目录
-DINSTALL_DATADIR=/usr/local/mysql/data //数据库存放目录
-DDEFAULT_CHARSET=utf8 //使用utf8字符
-DDEFAULT_COLLATION=utf8_general_ci //校验字符
-DEXTRA_CHARSETS=all //安装所有扩展字符集
-DENABLED_LOCAL_INFILE=1 //允许从本地导入数据
执行 /usr/local/mysql/support-files/mysql.server start 会报错,报错信息可以通过 /etc/my.cnf 中的 log-error 字段指明的路径来查看。
安装Mysql5.7 需要boost1.59.0,先下载boost解压,然后使用下面命令安装:
./bootstrap.sh --prefix=/usr/local/boost
./b2
./b2 install
mysql 的所有者默认是 mysql ,所以先新建一个 mysql 用户:
useradd mysql
再次启动服务,仍会报错,查看日志,可以发现是 mysql.user 表找不到,下面来安装一下默认表:
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
如果还不能启动起来,报下面的错:
Can't start server : Bind on unix socket: Permission denied
Do you already have another mysqld server running on socket: /var/lib/mysql/mysql.sock
(直接编辑 /etc/my.cnf 文件,设置 user=root 貌似也可以直接解决 )
且 /var/lib/mysql 这个目录里没有生成 mysql.sock 文件,则可能是没有权限,设置一下:chown -R mysql:mysql /var/lib/mysql/ 即可,若还有权限问题,就干脆直接 chown -R mysql:mysql /usr/local/mysql
如果还是启动不起来,日志里显示:
Table 'mysql.plugin' doesn't exist
Table 'mysql.user' doesn't exist
则编辑 /etc/my.cnf 文件,看 datadir 是否设置正确,改为 datadir=/usr/local/mysql/data/ ,此时再执行 /usr/local/mysql/support-files/mysql.server start 就可以正常启动服务了。
执行 /usr/local/mysql/bin/mysql 可以直接进入命令行,如果提示错误:
Can't connect to local MySQL server through socket '/tmp/mysql.sock'
则做一个软链接之后再次启动 mysql 客户端即可:
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
执行下面这句话,可以在 mysql.user 表中新建一条记录,开通远程权限:
grant all privileges on *.* to root@'%' identified by "123456";
该命令格式为:grant 权限1,权限2,…权限n on 数据库名.表名 to 用户名@用户地址 identified by "密码";
权限共有 14 个:select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file
如果是赋予所有权限,可以直接 "all privileges" 或 "all"
将 mysql 服务加入到开机启动:
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
// chkconfig --list mysqld #通过该命令查看
CentOS6.8安装 mysql5.7.18完成后,初始化mysql默认表的方法改成:
mysqld --initialize --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
//命令执行完毕之后,注意会给出默认的 root 的密码。如果没看到,可以删除 data 目录里的数据,再执行一遍重新生成。
启动mysql服务后,使用mysql命令连接会报“段错误”,可以参考:http://www.111cn.net/database/mysql/79897.htm 及 https://bugs.launchpad.net/percona-server/+bug/1201123
安装完mysql 之后,登陆以后,会提示修改密码:
You must reset your password using ALTER USER statement before executing this statement
这样操作:
SET PASSWORD = PASSWORD('new password');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
flush privileges;
设置远程连接:
use mysql;
Grant all on *.* to 'root'@'%' identified by 'root用户的密码' with grant option;
flush privileges;
3、PHP 配置
下载地址:
http://www.php.net/downloads.php
官方安装文档:http://php.net/manual/zh/install.unix.apache2.php
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-pdo-mysql=shared,mysqlnd
make -j
make install
注意,php7.1.4 的 --with-config-file-path 设定 php.ini 目录不起作用,虽然最后通过 phpinfo 查看时,显示的目录是是对的,但实际并找不到 php.ini,然后最好还是维持默认值好了,默认目录在 /usr/local/php/lib。
如果提示找不到 xml2-config ,就 yum install libxml2-devel 重试即可。
安装好之后,配置 httpd.conf 来让 Apache 支持 php,找到 <IfModule mime_module> 节点内加上:
AddType application/x-httpd-php .php
# phps 文件就是 php 的源文件,用于提供用户查看 php 代码,因为用户无法通过浏览器>直接查看 php 文件的内容,所以通过 phps 文件代替
# AddType application/x-httpd-php-source .phps
通过浏览器查看 phpinfo.php:
<php? phpinfo(); ?>
将源码文件中的 php.ini-development 拷贝到 /usr/local/php/etc/php.ini
默认 php.ini 里没有启用短标签模式(正常标签为 <?php ... ?> ,短标签为 <? ... ?>),找到 short_open_tag 把值改成 On 即可。
4、php 的 mysql 扩展
进入到 php 源码目录的 ext/mysql 下(我这里是 /opt/php-5.5.5/ext/mysql ),执行:
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-mysql=/usr/local/mysql/
make
make install
会提示:
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-zts-/
查看上面提示的目录里有一个 mysql.so 文件,这个就是 php 的 mysql 的扩展文件,加入到 php.ini 中即可:extension=mysql.so (确保上面的路径是 extension_dir 所在路径,否则可将 mysql.so 复制到 extension_dir 所在路径下)。通过在浏览器中查看 phpinfo.php ,可看到 mysql 扩展已经安装成功。
测试代码:
<?php
$conn = mysql_connect("10.10.10.10","test","") or die("can't connect mysql: ".mysql_error());
echo "connect mysql success<br />";
mysql_select_db("yychat_new");
$sql = "select * from room_vip_apply";
mysql_query("SET NAMES 'UTF8'");
$result = mysql_query($sql,$conn);
while($row=mysql_fetch_array($result))
{
echo $row["userid"]." ".$row["roomid"]." ".$row["name"]."<hr>";
}
mysql_close($conn);
?>
如果执行 /usr/local/php/bin/phpize 时提示:
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
则使用命令即可:
yum install m4
yum install autoconf
如果是 php7,则已经没有 mysql 扩展了,运行旧程序会显示警告,所以要兼容旧程序,可以安装一下。到 http://git.php.net/?p=pecl/database/mysql.git;a=summary 手动下载安装 mysql 扩展到 php-7.1.4/ext/ 目录解压,然后像上面一样执行即可。
参考:http://blog.csdn.net/shengerjianku/article/details/55060945
5、memcached 服务器配置
相应安装包下载地址:
wget http://cloud.github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
wget https://memcached.googlecode.com/files/memcached-1.4.15.tar.gz
安装 memcached 需要先安装 libevent,两个安装教程都是标准的 ./configure && make && make install ,安装好之后,使用命令 memcached -d -uroot 即可启动服务。
memcached 启动参数:
-u 以指定用户的身份运行,貌似只能以 root 用户模式运行。
-d 后台运行
-l 指定监听地址,默认是 INADDR_ANY,默认所有都允许,如果设为 127.0.0.1 或 localhost 表示只允许本机访问。
-p 指定端口号,默认为 11211。
-m 指定最大可使用内存(MB),默认是 64MB。
接下来测试一下服务是否正常运行,telnet 127.0.0.1 11211 连接到 memcached 服务之后,有五个命令:set(如果不存在则插入,存在则更改)、add(不存在则插入,存在则失败)、replace(存在则更改,不存在则失败)、get、delete,前三个命令的格式一样,都为
command <key> <flags> <expiration time> <bytes>
后面两个命令的格式一样,都为
command <key>
参数解释如下:
key //键值
value //存储的值(始终位于第二行)
flags //客户机使用它存储关于键值对的额外信息,不明白就写0吧
expiration time //最大存储时长(单位为秒,0 表示永远)
bytes //存储字节数
其它命令:
stats //查看 memcached 运行状态
flush_all //清空缓存中所有数据
6、php 的 memcache 扩展
安装包下载地址:
http://pecl.php.net/package/memcache
解压后进入目录,运行 phpize ,会在当前目录生成 configure 文件。执行:
./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config && make && make install
之后,会出现:
Installing shared extensions: /usr/local/lib/php/extensions/no-debug-non-zts-20121212/
在 php.ini 中添加
extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20121212/"
extension=memcache.so
然后重启 apache 服务,浏览 phpinfo.php 页面,即可找到 memcache。
7、php 的 svn 扩展
安装包下载地址:
http://pecl.php.net/package/svn
解压后进入目录,运行 phpize ,会在当前目录生成 configure 文件。执行:
./configure --with-php-config=/usr/local/php/bin/php-config && make && make install
可能会提示需要 svn_client.h 文件,则
yum install subversion-devel
然后编辑 php.ini 把生成的 svn.so 配置上去,重启服务即可。
使用的参数文档见:http://php.sinaapp.com/manual/zh/book.svn.php
8、BUGFREE搭建
可以从下面的地址下载 3.0.3 版本,其它版本我没有试过:
http://www.7edown.com/soft/down/soft_30888.html
解压到网站目录,浏览器访问,会检测环境,提示需要安装 pdo_mysql 扩展和目录权限。后者很简单,chmod 了事。前者从下面地址下载:
http://pecl.php.net/package/PDO_MYSQL
解压后操作步骤如下:
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql
make
make install
如果在 make 时报找不到 mysql.h 的错误,请参考下面的方法,测试可行:
这是因为在编译时需要mysql的头的文件,而它按默认搜索找不到头文件的位置,所以才出现这个问题.所以要将 /usr/local/mysql/include/ 目录下的mysql头文件链接到 /usr/local/include/ 的目录下:
ln -s /usr/local/mysql/include/* /usr/local/include/
然后再make和make install,pdo_mysql模块加进去了.
然后在 php.ini 文件中添加:extension=pdo_mysql.so ,重启服务即可。
bugfree 一键安装好之后,建立新帐号登录会提示“无产品访问权限”,只需要用管理员帐号登录后,添加一个产品,和用户组,然后把用户分配到某个产品和用户组,就可以正常登陆了。
三、中文乱码:
如果 echo 等输出中文为乱码,检查一下在 html 中是否有下面这行:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
如果连接 mysql 数据库读出的中文数据显示为乱码,在查询数据之前,先使用下面这行:
mysql_query("SET NAMES 'UTF8'");
四、常用函数
1、获取当前时间
date_default_timezone_set('Asia/Shanghai');
echo (date("Y年m月j日 H:i:s"));
五、测试
/usr/local/apache2/bin/ab -n -c http://211.152.52.106:8080/phpinfo.html
ab 是 apache 自带的性能测试工具(Apache Benchmarking Tool),-n 参数表示模拟访问的次数,-c 参数表示并发访问的用户数目。
附录
httpd.conf 的配置要点:
User yugd
Group yugd
然后,把htdocs目录全部设置为 chown yugd:yugd htdocs -R
这样用到 .pem 证书时,就可用了,证书也要设为 yugd:yugd ,且证书必须为 chmod 600 *.pem,这个要注意。
DocumentRoot 修改网站根目录
listen 80 监听端口号
ServerName 211.152.152.126:80 ip 和 port
php 手册:
php开发总结的更多相关文章
- 避免重复造轮子的UI自动化测试框架开发
一懒起来就好久没更新文章了,其实懒也还是因为忙,今年上半年的加班赶上了去年一年的加班,加班不息啊,好了吐槽完就写写一直打算继续的自动化开发 目前各种UI测试框架层出不穷,但是万变不离其宗,驱动PC浏览 ...
- App开发:模拟服务器数据接口 - MockApi
为了方便app开发过程中,不受服务器接口的限制,便于客户端功能的快速测试,可以在客户端实现一个模拟服务器数据接口的MockApi模块.本篇文章就尝试为使用gradle的android项目设计实现Moc ...
- 使用HTML5开发Kinect体感游戏
一.简介 我们要做的是怎样一款游戏? 在前不久成都TGC2016展会上,我们开发了一款<火影忍者手游>的体感游戏,主要模拟手游章节<九尾袭来 >,用户化身四代,与九尾进行对决, ...
- Android SwipeRefreshLayout 下拉刷新——Hi_博客 Android App 开发笔记
以前写下拉刷新 感觉好费劲,要判断ListView是否滚到顶部,还要加载头布局,还要控制 头布局的状态,等等一大堆.感觉麻烦死了.今天学习了SwipeRefreshLayout 的用法,来分享一下,有 ...
- Android Studio配置 AndroidAnnotations——Hi_博客 Android App 开发笔记
以前用Eclicps 用习惯了现在 想学学 用Android Studio 两天的钻研终于 在我电脑上装了一个Android Studio 并完成了AndroidAnnotations 的配置. An ...
- Android请求网络共通类——Hi_博客 Android App 开发笔记
今天 ,来分享一下 ,一个博客App的开发过程,以前也没开发过这种类型App 的经验,求大神们轻点喷. 首先我们要创建一个Andriod 项目 因为要从网络请求数据所以我们先来一个请求网络的共通类. ...
- Angular2入门系列教程1-使用Angular-cli搭建Angular2开发环境
一直在学Angular2,百忙之中抽点时间来写个简单的教程. 2016年是前端飞速发展的一年,前端越来越形成了(web component)组件化的编程模式:以前Jquery通吃一切的田园时代一去不复 ...
- 构建一个基本的前端自动化开发环境 —— 基于 Gulp 的前端集成解决方案(四)
通过前面几节的准备工作,对于 npm / node / gulp 应该已经有了基本的认识,本节主要介绍如何构建一个基本的前端自动化开发环境. 下面将逐步构建一个可以自动编译 sass 文件.压缩 ja ...
- 读书笔记:《HTML5开发手册》--HTML5新的结构元素
读书笔记:<HTML5开发手册> (HTML5 Developer's CookBook) 虽然从事前端开发已有很长一段时间,对HTML5标签也有使用,但在语义化上面理解还不够清晰.之前在 ...
- 总结:Mac前端开发环境的搭建(配置)
新年新气象,在2016年的第一天,我入手了人生中第一台自己的电脑(大一时好友赠送的电脑在一次无意中烧坏了主板,此后便不断借用别人的或者网站的).macbook air,身上已无分文...接下来半年的房 ...
随机推荐
- 【BZOJ-3437】小P的牧场 DP + 斜率优化
3437: 小P的牧场 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 705 Solved: 404[Submit][Status][Discuss ...
- Enum遇到下拉框
package com.zj.tool; public enum WeekDay { Mon(), Tue(), Wed(), Thu(), Fri(), Sat(), Sun(); /**定义枚举类 ...
- 先装.net后装iis的问题
如果没有按照正常的先装iis后装.net的顺序,可以使用此命令重新注册一下:(即就是先装的是visual stuido 2010的话,在安装IIS 7) 32位的Windows:----------- ...
- Windows网络驱动、NDIS驱动(微端口驱动、中间层驱动、协议驱动)、TDI驱动(网络传输层过滤)、WFP(Windows Filtering Platform)
catalog . 引言 . Windows 2000网络结构和OSI模型 . NDIS驱动 . NDIS微端口驱动编程实例 . NDIS中间层驱动编程实例 . NDIS协议层驱动编程实例 . TDI ...
- ubuntu 设置 NAT 转发
针对需求: 嵌入式开发中,经常使用板子和笔记本通过网线直连,如果需要板子连接到外网,就比较尴尬. 最简单方法,可以把板子接到局域网内,我们的笔记本通过局域网交换机连接到板子,可是,这样要很多修改 IP ...
- ubantu eclipe
sudo tar zxvf '/tmp/eclipse-inst-linux64.tar.gz' -C/usr/lib 4.在终端输入: $ sudo gedit /usr/share/applica ...
- Why TestNG?
最近计划将工程中的单元测试从JUnit迁移到TestNG上面. Why TestNG(http://kaczanowscy.pl/tomek/sites/default/files/testng_vs ...
- C#实体图片下载与批量下载(自动保存功能)
新工作,第一个小任务,制作一个点击下载图片的功能.并提供批量下载操作.图片是字节流的形式,存放在数据库中的. 为了避免直接从数据库中,下载失败,会在本地保存一份. 进行压缩的是SharpZip这个压缩 ...
- 机器学习笔记--KNN算法1
前言 Hello ,everyone. 我是小花.大四毕业,留在学校有点事情,就在这里和大家吹吹我们的狐朋狗友算法---KNN算法,为什么叫狐朋狗友算法呢,在这里我先卖个关子,且听我慢慢道来. 一 K ...
- DockerProblem
if you try to run the daemon manually: sudo /usr/bin/docker daemon And the error is: "FATA[0000 ...