驴窝网志社区 - Travel Weblog
Your service description
/blog/summary.php
-
域名转移的最新流程
<p>以前,很多网友都曾经为国内域名转移的繁复过程苦恼、为难过。那现在域名转移流程怎么样了?因为在国际域名管理机构的约束下,域名转移的流程还是简单、快捷了很多,几乎几个小时就可以完成域名的转移工作。那接下来就给大家简单讲解一下整个域名的转移过程:</p>
<p>1、首先,在原来域名注册商(或代理商)处提出域名转移申请,这时候一般需要提交域名所有人的身份证复印件(加上个人签名)电子版即可。</p>
<p>2、然后,域名所有人的邮箱就会收到原来域名注册商发过来的域名转移授权码。</p>
<p>3、接着,在新的域名注册商管理后台,选择转入域名菜单,以域名+空格+域名转移授权码格式提交,然后进入续费一年的订单,这时候可以选择微信、支付宝、信用卡结算。目前,国内外的主流域名注册商基本都支持支付宝、微信了,支付过程确实方便了很多。支付完成后,会看到要转入的域名列表,状态为“转入中”。</p>
<p>4、继续,查看域名所有人的邮箱,因为会收到原来域名注册商的域名转出确认通知,点击邮件中的链接地址,选择“确认”即可。以前,很多域名注册商都没这一步,一般需要域名所有人等5-30天的期限,才会自动完成转移。现在还是人性化了很多。</p>
<p>5、最后,域名所有人邮箱就收到新域名注册商的域名转移成功的邮件通知。登录新域名注册商的管理后台,查看域名列表已经转移成功,可以在域名管理菜单,更改域名的dns、添加a记录或别名等管理操作了。</p>
<p>注:如果有域名注册商有超出以上流程的额外要求,别犹豫,向国际域名注册局(ICANN)进行投诉即可解决问题,投诉邮件的格式网上很多,善用搜索,这里不再赘述。</p>
/blog/post/292/1526
-
ARM版Ubuntu通过Docker搭建LNMP环境教程
<p>说明:<br /> <br /> 使用 Docker 好处这里就不多说了,虽然 docker 命令一样可以管理容器;但 Docker Compose 能更好的定义和运行多容器的操作。特别是使用 docker-compose.yml 可以快速构建管理多个 Docker 容器,通过使用 docker-compose 指令来启动、停止和重启应用,以及应用中的服务和所有依赖服务的容器。yml 文件包含 Compose 使用的所有设置,用于配置镜像,容器,网络等。<br /> <br /> 本文主要讲述在ARM平台的ubuntu系统中,通过 Docker Compose 搭建LNMP环境,虽然只简单的创建了三个容器并运行。但举一反三,明白了操作流程,就可根据自己需要创建更多的容器,甚至生成自己的镜像,这将为工作提供很好的方便。<br /> <br /><strong>一、安装docker</strong><br /> <br /> 参考文档:ubuntu安装docker文档:https://docs.docker.com/engine/install/ubuntu/<br /> <br /> 在新主机上首次安装 Docker 之前,需要设置 Docker 存储库。然后可以从存储库安装和更新 Docker。<br /> <br /> 1、更新apt包索引并安装依赖包以允许apt通过 HTTPS 使用存储库:<br /> <br /> $ sudo apt-get update<br /> $ sudo apt-get install \<br /> apt-transport-https \<br /> ca-certificates \<br /> curl \<br /> gnupg \<br /> lsb-release<br /> <br /> 2、添加Docker官方的GPG密钥:<br /> <br /> $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg<br /> <br /> 3、使用以下命令设置arm版docker稳定存储库。<br /> <br /> $ echo \<br /> "deb [arch=arm64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \<br /> $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null<br /> <br /> 4、更新apt包索引,安装最新版本的Docker和containerd:<br /> <br /> $ sudo apt-get update<br /> $ sudo apt-get install docker-ce docker-ce-cli containerd.io<br /> <br /> 5、查看 Docker 版本确认安装成功:<br /> <br /> $ docker version<br /> <br /> 6、启用自动启动和启动。<br /> <br /> # systemctl enable docker<br /> # systemctl start docker<br /> <br /> <strong>二、安装Docker Compose</strong><br /> <br /> 1、安装docker compose:<br /> <br /> $ sudo apt install docker-compose<br /> 以上会直接安装ubuntu资源库中的docker-compose,但版本比较低,默认为1.25.0-1,要安装最新版看下面操作。<br /> <br /> 2、安装最新版docker compose(for arm):<br /> <br /> 安装 arm 版本的 docker compose ,推荐使用linuxserver.io编译好的镜像脚本安装。执行以下两行命令即可:<br /> $ sudo curl -L --fail https://raw.githubusercontent.com/linuxserver/docker-docker-compose/master/run.sh -o /usr/local/bin/docker-compose<br /> <br /> $ sudo chmod +x /usr/local/bin/docker-compose<br /> <br /> 3、查看docker compose版本确认安装成功:<br /> <br /> $ docker-compose --version<br /> <br /> <strong>三、配置Docker Compose</strong><br /> <br /> 参考目录树:<br /> dk-app<br /> ├── docker-compose.yml<br /> ├── mysql # mysql配置文件及数据库目录,需将容器内配置文件复制过来,并作挂载<br /> │ ├── my.cnf<br /> │ └── data<br /> ├── apache2 # apache及php配置文件目录,需将容器内配置文件复制过来,并作挂载<br /> │ ├── apache2.conf<br /> │ ├── php.ini<br /> │ └── sites-available<br /> ├── nginx # nginx配置文件目录,需将容器内配置文件复制过来,并作挂载<br /> │ ├── nginx.conf<br /> │ └── conf.d<br /> │ └── default.conf<br /> ├── php # php配置文件目录,需将容器内配置文件复制过来,并作挂载<br /> │ └── php-fpm.conf<br /> ├── log # 日志目录,需挂载各应用目录才能生效<br /> │ ├── mysql<br /> │ └──apache,php…<br /> ├── certs # ssl证书<br /> └── html # web目录<br /> <br /> 1、创建项目目录并进入:<br /> <br /> $ mkdir dk-app && dk-app<br /> <br /> 2、配置docker-compose.yml文件:<br /> <br /> $ sudo vim docker-compose.yml<br /> <br /> 内容如下:<br /> <br /> # 指定语法版本<br /> version: '3'<br /> services:<br /> # 构建mysql服务<br /> mysql:<br /> image: biarms/mysql:5.7 # supports mysql for arm<br /> #image: ubuntu/mysql # only supports mysql8.0 for arm,想装新版可使用此镜像<br /> container_name: dk_mysql<br /> restart: always<br /> ports:<br /> - 3306:3306<br /> volumes:<br /> - mysql/data:/var/lib/mysql<br /> environment:<br /> MYSQL_ROOT_PASSWORD: my_secret_password<br /> # 构建nginx服务<br /> nginx:<br /> image: nginx:latest<br /> container_name: dk_nginx<br /> restart: always<br /> ports:<br /> - 8080:80<br /> depends_on:<br /> - php<br /> - mysql<br /> volumes:<br /> - ./html:/usr/share/nginx/html<br /> # 构建php服务<br /> php:<br /> image: php:7.3-fpm<br /> container_name: dk_php<br /> restart: always<br /> volumes:<br /> - ./html:/var/www/html<br /> <br />参数说明:<br /> • image:建立容器使用的镜像及版本<br /> • container_name:建立容器的名称<br /> • restart: always:当 Docker 重启时,容器自动启动<br /> • build:指定要使用的 Dockerfile 所在目录,Docker Compose 会自动执行 docker build 指令的动作<br /> • ports: [hostPort]:[ContainerPort]:设定端口映射,即主机对外端口映射到容器内的端口<br /> • volumes: [hostPath]:[containerPath]:将项目中的目录挂载到容器中指定的工作目录<br /> • depends_on:依赖的服务<br /> • environment:设定环境变量<br /> <br /> 3、运行服务:<br /> <br /> $ sudo docker-compose up -d<br /> <br /> 启动或重启所有服务,在 yml 文件所在目录下运行该命令(加 -d 选项后台启动)即可。首次执行命令将拉取 service 节点下配置的镜像,然后安装容器,启动服务。<br /> <br /> 4、测试服务:<br /> <br /> 1)测试nginx及php<br /> <br /> nginx对php的支持,需要进入nignx容器修改default站点的配置文件,操作如下:<br /> <br /> a)进入nginx容器:<br /> $ sudo docker-compose exec nginx sh<br /> <br /> b)编辑default配置文件:<br /> 需要先安装vim:<br /> # apt update<br /> # apt install vim<br /> <br /> # vim /etc/nginx/conf.d/default.conf<br /> <br /> 取消掉php模块的注释,做如下修改,当然也可以直接粘贴进去:<br /> <br /> location ~ \.php$ {<br /> root /var/www/html;<br /> fastcgi_pass php:9000;<br /> fastcgi_index index.php;<br /> fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;<br /> include fastcgi_params;<br /> }<br /> <br /> c)修改完成,可以退出容器:<br /> # exit<br /> <br /> d)创建web项目目录及测试文件:<br /> $ mkdir html<br /> $ sudo echo "<h2>Hello World</h2>" > html/index.html<br /> $ sudo echo "<?php phpinfo(); ?>" > html/phpinfo.php<br /> <br />在浏览器中分别访问 server_ip:8080 和 server_ip:8080/phpinfo.php,将会看到 Hello World 及 phpinfo 的页面信息。<br /> <br /> 2)测试mysql:<br /> <br /> 进入mysql容器:<br /> $ sudo docker-compose exec mysql bash<br /> <br /> 登录mysql查看版本:<br /> # mysqladmin -uroot -p version<br /> <br /> 退出容器:<br /> # exit<br /> <br /> 5、查看当前运行的服务:<br /> <br /> # docker-compose ps<br /> <br /> 后记:<br /> <br /> 以上只是简单的lnmp环境搭建,安装php扩展,优化nginx、php、mysql配置,绑定域名安装ssl证书这些gooogle一下,自己就操作就可以了。</p>
/blog/post/292/1525
-
ARM版Ubuntu通过Docker搭建LAMP环境教程
<p>说明:</p>
<p>使用 Docker 好处这里就不多说了,虽然 docker 命令一样可以管理容器;但 Docker Compose 能更好的定义和运行多容器的操作。特别是使用 docker-compose.yml 可以快速构建管理多个 Docker 容器,通过使用 docker-compose 指令来启动、停止和重启应用,以及应用中的服务和所有依赖服务的容器。yml 文件包含 Compose 使用的所有设置,用于配置镜像,容器,网络等。</p>
<p>本文主要讲述在ARM平台的ubuntu系统中,通过 Docker Compose 搭建LAMP环境,虽然只简单的创建了两个容器并运行。但举一反三,明白了操作流程,就可根据自己需要创建更多的容器,甚至生成自己的镜像,这将为工作提供很好的方便。</p>
<p><strong>一、安装docker</strong></p>
<p>参考文档:ubuntu安装docker文档:https://docs.docker.com/engine/install/ubuntu/</p>
<p>在新主机上首次安装 Docker 之前,需要设置 Docker 存储库。然后可以从存储库安装和更新 Docker。</p>
<p>1、更新apt包索引并安装依赖包以允许apt通过 HTTPS 使用存储库:</p>
<p>$ sudo apt-get update<br /> $ sudo apt-get install \<br /> apt-transport-https \<br /> ca-certificates \<br /> curl \<br /> gnupg \<br /> lsb-release</p>
<p>2、添加Docker官方的GPG密钥:</p>
<p>$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg</p>
<p>3、使用以下命令设置arm版docker稳定存储库。</p>
<p>$ echo \<br /> "deb [arch=arm64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \<br /> $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null</p>
<p>4、更新apt包索引,安装最新版本的Docker和containerd:</p>
<p>$ sudo apt-get update<br /> $ sudo apt-get install docker-ce docker-ce-cli containerd.io</p>
<p>5、查看 Docker 版本确认安装成功:</p>
<p>$ docker version</p>
<p>6、启用自动启动和启动。</p>
<p># systemctl enable docker<br /> # systemctl start docker</p>
<p><strong>二、安装Docker Compose</strong></p>
<p>1、安装docker compose:</p>
<p>$ sudo apt install docker-compose<br /> 以上会直接安装ubuntu资源库中的docker-compose,但版本比较低,默认为1.25.0-1,要安装最新版看下面操作。</p>
<p>2、安装最新版docker compose(for arm):</p>
<p>安装 arm 版本的 docker compose ,推荐使用linuxserver.io编译好的镜像脚本安装。执行以下两行命令即可:<br /> $ sudo curl -L --fail https://raw.githubusercontent.com/linuxserver/docker-docker-compose/master/run.sh -o /usr/local/bin/docker-compose</p>
<p>$ sudo chmod +x /usr/local/bin/docker-compose</p>
<p>3、查看docker compose版本确认安装成功:</p>
<p>$ docker-compose --version</p>
<p><strong>三、配置Docker Compose</strong></p>
<p>参考目录树:<br /> dk-app<br /> ├── docker-compose.yml<br /> ├── mysql # mysql配置文件及数据库目录,需将容器内配置文件复制过来,并作挂载<br /> │ ├── my.cnf<br /> │ └── data<br /> ├── apache2 # apache及php配置文件目录,需将容器内配置文件复制过来,并作挂载<br /> │ ├── apache2.conf<br /> │ ├── php.ini<br /> │ └── sites-available<br /> ├── nginx # nginx配置文件目录,需将容器内配置文件复制过来,并作挂载<br /> │ ├── nginx.conf<br /> │ └── conf.d<br /> │ └── default.conf<br /> ├── php # php配置文件目录,需将容器内配置文件复制过来,并作挂载<br /> │ └── php-fpm.conf<br /> ├── log # 日志目录,需挂载各应用目录才能生效<br /> │ ├── mysql<br /> │ └──apache,php…<br /> ├── certs # ssl证书<br /> └── html # web目录</p>
<p>1、创建项目目录并进入:</p>
<p>$ mkdir dk-app && dk-app</p>
<p>2、配置docker-compose.yml文件:</p>
<p>$ sudo vim docker-compose.yml</p>
<p>内容如下:</p>
<p># 指定语法版本<br /> version: '3'<br /> services:<br /> # 构建mysql服务<br /> mysql:<br /> image: biarms/mysql:5.7 # supports mysql for arm<br /> #image: ubuntu/mysql # only supports mysql8.0 for arm,想装新版可使用此镜像<br /> container_name: dk_mysql<br /> restart: always<br /> ports:<br /> - 3306:3306<br /> volumes:<br /> - mysql/data:/var/lib/mysql<br /> environment:<br /> MYSQL_ROOT_PASSWORD: my_secret_password<br /> # 构建web服务<br /> web:<br /> image: php:7.3-apache<br /> container_name: dk_web<br /> #build: php<br /> restart: always<br /> ports:<br /> - 80:80<br /> - 443:443<br /> volumes:<br /> - html:/var/www/html<br /> depends_on:<br /> - mysql<br /> links:<br /> - mysql</p>
<p>参数说明:</p>
<p>• image:建立容器使用的镜像及版本<br /> • container_name:建立容器的名称<br /> • restart: always:当 Docker 重启时,容器自动启动<br /> • build:指定要使用的 Dockerfile 所在目录,Docker Compose 会自动执行 docker build 指令的动作<br /> • ports: [hostPort]:[ContainerPort]:设定端口映射,即主机对外端口映射到容器内的端口<br /> • volumes: [hostPath]:[containerPath]:将项目中的目录挂载到容器中指定的工作目录<br /> • depends_on:依赖的服务<br /> • environment:设定环境变量</p>
<p>3、运行服务:</p>
<p>$ sudo docker-compose up -d</p>
<p>启动或重启所有服务,在 yml 文件所在目录下运行该命令(加 -d 选项后台启动)即可。首次执行命令将拉取 service 节点下配置的镜像,然后安装容器,启动服务。</p>
<p>4、测试服务:</p>
<p>1)测试apache及php:</p>
<p>创建web项目目录及测试文件:<br /> $ mkdir html<br /> $ sudo echo "<h2>Hello World</h2>" > html/index.html<br /> $ sudo echo "<?php phpinfo(); ?>" > html/phpinfo.php</p>
<p>在浏览器中分别访问 server_ip 和 server_ip/phpinfo.php,将会看到 Hello World 及 phpinfo 的页面信息。</p>
<p>2)测试mysql:</p>
<p>进入mysql容器:<br /> $ sudo docker-compose exec mysql bash</p>
<p>登录mysql查看版本:<br /> # mysqladmin -uroot -p version</p>
<p>退出容器:<br /> # exit</p>
<p>5、查看当前运行的服务:</p>
<p># docker-compose ps</p>
<p>后记:</p>
<p>以上只是简单的lamp环境搭建,安装php扩展,优化apache、php、mysql配置,绑定域名安装ssl证书这些gooogle一下,自己就操作就可以了。</p>
/blog/post/292/1524
-
centos7下优化Apache2.4的内存占用率
<p>centos7下假设apache2.4的web服务器,经常出现内存跑满的情况,导致网站访问缓慢,开始以为是mysql的锅,以为是修改引擎模式所致。后来通过top命令查看到原来是apache的进程跑满内存了。</p>
<p>通过查阅资料,发现可以通过对apache的MPM模式下的event参数修改来对内存占用进行优化。</p>
<p>但在我的实践中,其实还可以更简单的操作。步骤如下:</p>
<p>1、检查Apache安装使用的MPM模式,操作命令:</p>
<p># httpd -V</p>
<p>在输出结果中查看Server MPM:条目即可,Apache提供prefork、worker、event三种不同的MPM模式,目前最新版默认选择event。通过编辑/etc/httpd/conf.modules.d/00-mpm.conf配置文件可以在三个模式之间切换。</p>
<p>2、复制event配置文件</p>
<p>MPM模式的配置文件要生效需要复制到/etc/httpd/conf.d目录下:</p>
<p>cp /usr/share/doc/httpd-2.4.48/httpd-mpm.conf /etc/httpd/conf.d</p>
<p>3、修改event的参数</p>
<p>然后,可以根据自己服务器及网站的需求,对event模式的参数进行修改,如编辑配置文件:</p>
<p>vim /etc/httpd/conf.d/httpd-mpm.conf</p>
<p><IfModule mpm_event_module><br />StartServers 3 #默认启动进程数<br /> MinSpareThreads 75 #最小线程<br /> MaxSpareThreads 250 #最大线程<br />ThreadsPerChild 25 #最大子线程数<br />MaxRequestWorkers 400 #最大请求数量<br />MaxConnectionsPerChild 200 #最大连接次数,超过后释放线程<br /></IfModule></p>
<p>主要将MaxConnectionsPerChild参数值由0改为200。目的用于控制子进程的最大连接数,超过就自动释放。</p>
<p>service httpd reload</p>
<p>这样,在重新加载apache并使event模式默认参数生效后,apache占用内存的情况就已经大为改观了。这时候再访问网站前后台,就不会再有卡顿的问题了。</p>
<p>服务器内存占用优化效果见下图:</p>
<p><a id="res_313" type="image/png" href="https://lvwo.com/blog/gallery/292/292-313.png"><img style="margin: 5px;" src="https://lvwo.com/blog/gallery/292/previews-med/292-313.png" border="0" alt="优化内存占用"/></a></p>
<p>这是两台机子优化内存前后的对比图。</p>
<p>4、关于event模式的更多参数及说明,可以查看官方文档:http://httpd.apache.org/docs/2.4/mod/event.html。</p>
/blog/post/292/1523
-
windows10搭建WAMP环境
<p><span lang="en-US">Windows10</span><span lang="zh-CN">(X64)</span><span lang="zh-CN">安装</span><span lang="en-US">apche2.4+php7.3+mysql5.7</span></p>
<p><span lang="zh-CN">一、安装</span><span lang="en-US">Apache</span> </p>
<p><span lang="zh-CN">1.Apache</span><span lang="zh-CN">官方网站只提供了源文件,可以在</span><span lang="en-US">http://www.apachelounge.com/download/</span><span lang="zh-CN">选择编译好的</span><span lang="zh-CN">win64-VS16</span><span lang="zh-CN">版httpd-2.4.46-win64-vs16.zip </span><span lang="en-US">下载</span><span lang="zh-CN">。将</span><span lang="en-US">Apache</span><span lang="zh-CN">压缩包</span><span lang="en-US">解压到</span><span lang="zh-CN">指定的安装</span><span lang="en-US">目录,</span><span lang="zh-CN">如</span><span lang="en-US">"d:/wamp/apapch24"</span><span lang="zh-CN">。</span></p>
<p><span lang="en-US">2.</span><span lang="zh-CN">编辑</span><span lang="en-US">apache</span><span lang="zh-CN">配置文件</span><span lang="en-US">d:/wamp/apapch24/conf/httpd.conf</span><span lang="en-US">文件</span><span lang="zh-CN">,修改如下:</span></p>
<p><span lang="zh-CN">Define SRVROOT "</span><span lang="en-US">c</span><span lang="zh-CN">:/Apache24"</span><span lang="en-US"> //</span><span lang="zh-CN">修改为</span><span lang="en-US">Apache</span><span lang="zh-CN">的安装目录:</span><span lang="zh-CN">Define SRVROOT "d:/</span><span lang="en-US">wamp</span><span lang="zh-CN">/</span><span lang="en-US">a</span><span lang="zh-CN">pache24"</span></p>
<p><span lang="zh-CN">DocumentRoot "${SRVROOT}/htdocs"</span><span lang="en-US"> //</span><span lang="zh-CN">网站根目录可改为指定目录如:</span><span lang="zh-CN">DocumentRoot "d:/</span><span lang="en-US">www</span><span lang="zh-CN">"</span></p>
<p><span lang="zh-CN"><Directory "${SRVROOT}/htdocs"></span><span lang="en-US"> //</span><span lang="zh-CN">网站根目录可改为指定目录如:</span><span lang="zh-CN"><Directory "d:/</span><span lang="en-US">www</span><span lang="zh-CN">"></span></p>
<p><span lang="zh-CN">Options Indexes FollowSymLinks</span><span lang="en-US"> //</span><span lang="zh-CN">删掉</span><span lang="zh-CN">Indexes</span><span lang="zh-CN">可以禁止</span><span lang="en-US">list</span><span lang="zh-CN">目录下的文件</span></p>
<p><span lang="zh-CN">DirectoryIndex index.html</span><span lang="en-US"> //</span><span lang="zh-CN">加入</span><span lang="en-US">php</span><span lang="zh-CN">后缀</span><span lang="zh-CN"> index.htm index.php</span></p>
<p><span lang="en-US">3.</span><span lang="zh-CN">设置环境变量</span></p>
<p><span lang="zh-CN">右键点:我的电脑</span><span lang="en-US">-</span><span lang="zh-CN">属性</span><span lang="en-US">-</span><span lang="zh-CN">高级系统设置</span><span lang="en-US">-</span><span lang="zh-CN">高级</span><span lang="en-US">-</span><span lang="zh-CN">环境变量</span><span lang="en-US">-</span><span lang="zh-CN">系统变量,选择编辑“</span><span lang="en-US">Path</span><span lang="zh-CN">”</span><span lang="en-US">,</span><span lang="zh-CN">然后在新建中加入</span><span lang="en-US">Apache</span><span lang="zh-CN">的安装目录</span><span lang="zh-CN">D:\</span><span lang="en-US">wamp</span><span lang="zh-CN">\Apache24\bin</span><span lang="zh-CN">,点击确定即可。</span></p>
<p><span lang="zh-CN">或者</span><span lang="en-US">以管理员身份运行</span><span lang="en-US">Windows PowerShell</span><span lang="zh-CN">执行:</span></p>
<p><span lang="en-US">></span><span lang="zh-CN">$Env:path=$Env:Path+";D:\</span><span lang="en-US">wamp</span><span lang="zh-CN">\</span><span lang="en-US">a</span><span lang="zh-CN">pache24\bin"</span></p>
<p><span lang="en-US">></span><span lang="zh-CN">$env:path</span><span lang="en-US"> //</span><span lang="zh-CN">查看</span><span lang="en-US">pach</span><span lang="zh-CN">的值</span></p>
<p><span lang="en-US">4.</span><span lang="zh-CN">启动</span><span lang="en-US">Apache</span><span lang="en-US">,以管理员身份运行</span><span lang="en-US">PowerShell</span><span lang="zh-CN">(需要进去</span><span lang="en-US">apache</span><span lang="zh-CN">安装目录)或</span><span lang="en-US">cmd</span><span lang="zh-CN">,命令行下输入:</span></p>
<p><span lang="en-US">>httpd -k install (</span><span lang="zh-CN">写入</span><span lang="en-US">服务</span><span lang="en-US">)</span></p>
<p lang="en-US">>httpd -k start (开启)</p>
<p lang="en-US">>httpd -k stop (停止)</p>
<p lang="en-US">>httpd -k restart (重启)</p>
<p><span lang="en-US">(</span><span lang="zh-CN">也可以打开</span><span lang="en-US">d:/wamp/apache24/bin/</span><span lang="zh-CN">ApacheMonitor.exe</span><span lang="en-US">重启</span><span lang="en-US">Apache</span><span lang="en-US">。</span><span lang="en-US">)</span></p>
<p><span lang="en-US">4.</span><span lang="zh-CN">打开浏览器,输入</span><span lang="en-US">http://127.0.0.1 </span><span lang="en-US">看到</span><span lang="en-US">"It Works"</span><span lang="en-US">,说明</span><span lang="en-US">Apache</span><span lang="en-US">已经启动</span><span lang="zh-CN">。</span></p>
<p><span lang="en-US">5.</span><span lang="zh-CN">卸载</span><span lang="en-US">apache</span></p>
<p lang="en-US">>httpd -k stop (停止)</p>
<p><span lang="en-US">></span><span lang="zh-CN">httpd -k uninstall</span><span lang="en-US"> (</span><span lang="zh-CN">卸载</span><span lang="en-US">)</span></p>
<p><span lang="zh-CN">二、安装</span><span lang="en-US">php</span></p>
<p><span lang="zh-CN">1.</span><span lang="zh-CN">官网</span><span lang="en-US">http://windows.php.net/download/</span><span lang="en-US">,选择</span><span lang="zh-CN">VC15 x64 Thread Safe</span><span lang="en-US">线程安全版php-7.3.27-Win32-VC15-x64.zip</span><span lang="zh-CN">下载</span><span lang="en-US">。解压到指定的安装目录,</span><span lang="zh-CN">如:</span><span lang="en-US">"d:</span><span lang="en-US">\</span><span lang="en-US">wamp</span><span lang="en-US">\</span><span lang="en-US">php73"</span><span lang="zh-CN">。</span></p>
<p><span lang="zh-CN">也可以下载其他</span><span lang="en-US">php</span><span lang="en-US">版本</span><span lang="en-US">https://windows.php.net/downloads/releases/archives/</span></p>
<p><span lang="zh-CN">2.</span><span lang="zh-CN">修改</span><span lang="en-US">PHP</span><span lang="en-US">配置文件</span></p>
<p><span lang="zh-CN">将</span><span lang="en-US">d:/wamp/php73/php.ini-dist</span><span lang="zh-CN">或</span><span lang="en-US">php.ini-development</span><span lang="zh-CN">复制一份并重命名为</span><span lang="zh-CN">php.ini</span><span lang="zh-CN">,编辑如下:</span></p>
<p><span lang="en-US">; extension_dir = "ext" //</span><span lang="zh-CN">修改为</span><span lang="en-US"> extension_dir = "d:/wamp/php73/ext"</span></p>
<p><span lang="en-US">#</span><span lang="zh-CN">开启</span><span lang="en-US">php</span><span lang="en-US">需要的扩展。只要将</span><span lang="en-US">;extension</span><span lang="en-US">前的分号去掉即可</span><span lang="zh-CN">。如开启常用扩展:</span></p>
<p lang="en-US">extension=php_bz2</p>
<p lang="en-US">extension=curl</p>
<p>extension=gd2</p>
<p>extension=mbstring</p>
<p>extension=mysqli</p>
<p>extension=openssl</p>
<p>extension=pdo_mysql</p>
<p><span lang="en-US">#</span><span lang="zh-CN">其他如</span><span lang="en-US">opcache</span><span lang="zh-CN">看自己需要开启。</span></p>
<p><span lang="zh-CN">注:</span><span lang="en-US">php.ini-dist</span><span lang="zh-CN">和</span><span lang="en-US">php.ini-development</span><span lang="zh-CN">用于开发,</span><span lang="en-US">php.ini-recommended</span><span lang="zh-CN">和</span><span lang="en-US">php.ini-production</span><span lang="zh-CN">用于生产。</span><span lang="en-US">前者是为开发环境推荐的,允许调试、少占资源的原则,后者是为实际知上线后的产品环境推荐的,禁止报错、提高性能的原则。</span></p>
<p><span lang="en-US">3.</span><span lang="zh-CN">让</span><span lang="zh-CN">apache</span><span lang="zh-CN">支持</span><span lang="en-US">php</span><span lang="zh-CN">,打开</span><span lang="en-US">apache</span><span lang="en-US">配置文件</span><span lang="en-US">Apapch24/conf/httpd.conf</span><span lang="zh-CN">,修改如下:</span></p>
<p><span lang="en-US">1</span><span lang="zh-CN">)添加</span><span lang="en-US">index.php/index.htm</span><span lang="zh-CN">为目录默认访问文件:</span></p>
<p><IfModule dir_module></p>
<p> DirectoryIndex index.html index.php index.htm</p>
<p></IfModule></p>
<p><span lang="en-US">2</span><span lang="zh-CN">)添加</span><span lang="en-US">PHP</span><span lang="en-US">模块。</span><span lang="zh-CN">在</span><span lang="en-US">httpd.conf</span><span lang="zh-CN">配置文件末尾添加:</span></p>
<p lang="en-US">AddType application/x-httpd-php .php</p>
<p><span lang="zh-CN">#LoadModule php5_module "d:/wa</span><span lang="en-US">mp</span><span lang="zh-CN">/php52/php5apache2_2.dll"</span></p>
<p><span lang="zh-CN">#PHPIniDir "d:/wa</span><span lang="en-US">mp</span><span lang="zh-CN">/php52"</span></p>
<p><span lang="zh-CN">#LoadFile "d:/wa</span><span lang="en-US">mp</span><span lang="zh-CN">/php52/libmysql.dll"</span></p>
<p><span lang="zh-CN">#LoadFile "d:/wa</span><span lang="en-US">mp</span><span lang="zh-CN">/php52/libmcrypt.dll"</span></p>
<p><span lang="en-US">#</span><span lang="zh-CN">LoadModule php5_module "d:/wa</span><span lang="en-US">mp</span><span lang="zh-CN">/php54/php5apache2_2.dll"</span></p>
<p><span lang="en-US">#</span><span lang="zh-CN">PHPIniDir "d:/wa</span><span lang="en-US">mp</span><span lang="zh-CN">/php54"</span></p>
<p><span lang="en-US">#</span><span lang="zh-CN">LoadModule php5_module "d:/wa</span><span lang="en-US">mp</span><span lang="zh-CN">/php55/php5apache2_4.dll"</span></p>
<p><span lang="en-US">##php</span><span lang="zh-CN">版本</span><span lang="zh-CN">≤</span><span lang="en-US">5.4</span><span lang="zh-CN">时只能运行在</span><span lang="en-US">apache2.4</span><span lang="zh-CN">的</span><span lang="en-US">32</span><span lang="zh-CN">位版本下</span></p>
<p><span lang="en-US">#</span><span lang="zh-CN">PHPIniDir "d:/wa</span><span lang="en-US">mp</span><span lang="zh-CN">/php55"</span></p>
<p><span lang="en-US">#</span><span lang="zh-CN">LoadModule php5_module "d:/wa</span><span lang="en-US">mp</span><span lang="zh-CN">/php56/php5apache2_4.dll"</span></p>
<p><span lang="zh-CN">#PHPIniDir "d:/wa</span><span lang="en-US">mp</span><span lang="zh-CN">/php56"</span></p>
<p><span lang="zh-CN">#LoadModule php7_module "d:/wamp/php</span><span lang="en-US">70</span><span lang="zh-CN">/php7apache2_4.dll"</span></p>
<p><span lang="zh-CN">#</span><span lang="en-US">PHPIniDir "</span><span lang="zh-CN">d:</span><span lang="en-US">\wamp\php70</span><span lang="zh-CN">"</span></p>
<p><span lang="zh-CN">LoadModule php7_module "d:/wamp/php</span><span lang="en-US">73</span><span lang="zh-CN">/php7apache2_4.dll"</span></p>
<p><span lang="en-US">PHPIniDir "</span><span lang="zh-CN">d:</span><span lang="en-US">\wamp\php73</span><span lang="zh-CN">"</span></p>
<p><span lang="zh-CN">4. </span><span lang="en-US">重启</span><span lang="en-US">apache</span><span lang="zh-CN">,</span><span lang="en-US">在</span><span lang="en-US">Apapch24/htdocs</span><span lang="zh-CN">目录下</span><span lang="en-US">新建内容</span><span lang="zh-CN">为</span><span lang="en-US"><?php phpinfo(); ?></span><span lang="zh-CN">的</span><span lang="zh-CN">php</span><span lang="en-US">info.php</span><span lang="en-US">文件,在浏览器中访</span><span lang="zh-CN">http://localhost/phpinfo.php</span><span lang="en-US">,如果出现</span><span lang="en-US">php</span><span lang="zh-CN">版本及配置信息,就表示</span><span lang="en-US">php</span><span lang="zh-CN">已经安装成功。</span></p>
<p><span lang="zh-CN">也可以查看</span><span lang="en-US">php</span><span lang="zh-CN">版本:</span></p>
<p lang="en-US">>php -v</p>
<p><span lang="en-US">5.</span><span lang="zh-CN">将</span><span lang="en-US">php</span><span lang="zh-CN">加入系统环境变量</span></p>
<p><span lang="zh-CN">右键点:我的电脑</span><span lang="en-US">-</span><span lang="zh-CN">属性</span><span lang="en-US">-</span><span lang="zh-CN">高级系统设置</span><span lang="en-US">-</span><span lang="zh-CN">高级</span><span lang="en-US">-</span><span lang="zh-CN">环境变量</span><span lang="en-US">-</span><span lang="zh-CN">系统变量,选择编辑“</span><span lang="en-US">Path</span><span lang="zh-CN">”</span><span lang="en-US">,</span><span lang="zh-CN">然后在新建中加入</span><span lang="en-US">php</span><span lang="zh-CN">的安装目录,如</span><span lang="en-US">d</span><span lang="zh-CN">:\</span><span lang="en-US">wamp</span><span lang="zh-CN">\php73</span><span lang="zh-CN">,点击确定就可以了。</span></p>
<p lang="en-US">--------------------------------------------------</p>
<p>1.php5.2支持32位的Apache2.0和Apache2.2;</p>
<p>2.php5.3、php5.4支持32位的Apache2.2和Apache2.4;</p>
<p>3.php5.5开始只支持Apache2.4,选择对应32位或64位即可;</p>
<p><span lang="en-US">4.apachelounge</span><span lang="zh-CN">网站有针对</span><span lang="en-US">Apache2.4</span><span lang="zh-CN">支持</span><span lang="en-US">php5.2/5.3/5.4</span><span lang="zh-CN">的</span><span lang="en-US">php5apache2_4.dll</span><span lang="zh-CN">扩展文件;</span></p>
<p><span lang="zh-CN">下载地址:</span><span lang="en-US">https://www.apachelounge.com/download/additional/</span></p>
<p><span lang="zh-CN">注意:小于</span><span lang="en-US">php5.5</span><span lang="zh-CN">版本只有</span><span lang="en-US">32</span><span lang="zh-CN">位,故只能安装</span><span lang="en-US">32</span><span lang="zh-CN">位的</span><span lang="en-US">apache2.4</span><span lang="zh-CN">,且需安装</span><span lang="en-US">VC9(Visual C++ 2008)</span></p>
<p><span lang="en-US">5.</span><span lang="zh-CN">另外可使用</span><span lang="en-US">fastCGI</span><span lang="zh-CN">模块在</span><span lang="en-US">Apache 2.4</span><span lang="zh-CN">上运行从</span><span lang="en-US">4.3.x</span><span lang="zh-CN">到</span><span lang="en-US">7.2.x</span><span lang="zh-CN">的所有</span><span lang="en-US">PHP</span><span lang="zh-CN">版本,具体可自行配置。</span></p>
<p><span lang="en-US">6.</span><span lang="zh-CN">或者可以配置</span><span lang="en-US">PHP-FPM </span><span lang="zh-CN">模式加载多个</span><span lang="en-US">php</span><span lang="zh-CN">版本</span><span lang="en-US"> </span><span lang="zh-CN">。</span></p>
<p lang="en-US">--------------------------------------------------</p>
<p><span lang="zh-CN">三、安装</span><span lang="en-US">mysql</span></p>
<p><span lang="en-US">1</span><span lang="en-US">、在</span><span lang="en-US">mysql</span><span lang="zh-CN">官网</span><span lang="en-US">https://</span><span lang="zh-CN">downloads.mysql.com/archives/community</span><span lang="en-US">下载mysql-5.7.32-winx64.zip</span><span lang="zh-CN">,</span><span lang="en-US">解压到</span><span lang="zh-CN">指定的</span><span lang="en-US">安装目录</span><span lang="zh-CN">,如</span><span lang="en-US">"</span><span lang="zh-CN">d</span><span lang="en-US">:/wamp/mysql57"</span></p>
<p><span lang="en-US">2.</span><span lang="zh-CN">设置环境变量</span><span lang="en-US">PATH</span><span lang="en-US">,右键“我的电脑</span><span lang="en-US">-</span><span lang="en-US">高级系统设置</span><span lang="en-US">-</span><span lang="en-US">环境变量</span><span lang="en-US">-</span><span lang="en-US">系统变量</span><span lang="en-US">-path”</span><span lang="en-US">,双击编辑将</span><span lang="en-US">mysql </span><span lang="en-US">安装目录</span><span lang="en-US">D:\wamp\mysql57\bin</span><span lang="en-US">加入</span><span lang="en-US">path</span><span lang="en-US">中。</span></p>
<p><span lang="en-US">3</span><span lang="zh-CN">、右键点击</span><span lang="en-US">windows10</span><span lang="zh-CN">右下角开始菜单,选择以管理员运行</span><span lang="en-US">powershell</span><span lang="zh-CN">,命令行依次输入以下:</span></p>
<p><span lang="en-US">4</span><span lang="zh-CN">、初始化</span><span lang="en-US">mysql</span><span lang="zh-CN">:</span></p>
<p lang="en-US">> .\mysqld --initialize --console</p>
<p><span lang="zh-CN">记下运行结果中随机生成的</span><span lang="en-US">root</span><span lang="en-US">密码</span><span lang="zh-CN">,方便后期修改</span><span lang="en-US">root</span><span lang="zh-CN">密码。</span><span lang="zh-CN">root@localhost: W/62jqidawwN</span></p>
<p><span lang="en-US">5</span><span lang="zh-CN">、安装</span><span lang="en-US">mysql</span><span lang="zh-CN">服务:</span></p>
<p lang="en-US">> .\mysqld --install</p>
<p><span lang="en-US">6</span><span lang="zh-CN">、启动</span><span lang="en-US">mysql</span><span lang="zh-CN">服务:</span></p>
<p><span lang="en-US">></span><span lang="zh-CN">net start mysql</span></p>
<p><span lang="en-US">7</span><span lang="zh-CN">、登录、修改</span><span lang="en-US">mysql</span><span lang="zh-CN">密码:</span></p>
<p lang="en-US">>mysql -uroot -p</p>
<p><span lang="zh-CN">输入初始化的</span><span lang="en-US">root</span><span lang="zh-CN">密码</span></p>
<p><span lang="en-US">mysql></span><span lang="zh-CN">ALTER USER 'root'@'localhost' </span><span lang="en-US">identified by</span><span lang="zh-CN"> '123456' PASSWORD EXPIRE NEVER;</span></p>
<p lang="en-US">mysql>flush privileges;</p>
<p><span lang="en-US">8</span><span lang="zh-CN">、</span><span lang="en-US">开启</span><span lang="en-US">php</span><span lang="en-US">的</span><span lang="en-US">mysql</span><span lang="en-US">扩展</span><span lang="zh-CN">,支持</span><span lang="en-US">php</span><span lang="en-US">连接</span><span lang="en-US">mysql</span><span lang="zh-CN">:</span></p>
<p><span lang="zh-CN">编辑</span><span lang="en-US">d:/wamp/php72/php.ini</span><span lang="en-US">,将</span><span lang="en-US">extension=mysqli</span><span lang="en-US">和</span><span lang="en-US">extension=pdo_mysql</span><span lang="en-US">前面的分号去掉</span><span lang="zh-CN">后,重启</span><span lang="en-US">apache</span><span lang="zh-CN">:</span></p>
<p lang="en-US">>httpd -k restart</p>
<p lang="en-US">--------------------------------------------------for mysql5.6</p>
<p><span lang="en-US">1.</span><span lang="zh-CN">将</span><span lang="en-US">mysql</span><span lang="zh-CN">安装目录下</span><span lang="en-US">my-default.ini</span><span lang="zh-CN">复制一份重命名为</span><span lang="en-US">my.ini</span></p>
<p><span lang="en-US">2.</span><span lang="zh-CN">输入</span><span lang="en-US"> mysql -u root -p</span><span lang="zh-CN">登录</span><span lang="en-US">mysql</span><span lang="zh-CN">,初始安装密码为空,直接回车即可。</span></p>
<p lang="en-US">3.设置root密码</p>
<p lang="en-US">mysql>use mysql;</p>
<p lang="en-US">mysql>update user set password=password('your password') where user='root';</p>
<p lang="en-US">mysql>flush privileges;</p>
<p lang="en-US">--------------------------------------------------</p>
<p><span lang="en-US">4.</span><span lang="zh-CN">修改</span><span lang="en-US">root</span><span lang="zh-CN">密码</span></p>
<p><span lang="zh-CN">打开</span><span lang="en-US">d:\wamp\mysql57\my.ini</span><span lang="zh-CN">,在</span><span lang="en-US">[mysqld]</span><span lang="en-US">下添加</span><span lang="zh-CN">“</span><span lang="en-US">skip-grant-tables</span><span lang="zh-CN">”保存后,重启登录</span><span lang="en-US">mysql</span><span lang="zh-CN">:</span></p>
<p lang="en-US">>net stop mysql</p>
<p lang="en-US">>net start mysql</p>
<p><span lang="en-US">></span><span lang="zh-CN">mysql -u root -p</span></p>
<p><span lang="en-US">Enter password:</span><span lang="zh-CN">不用输入密码,直接回车后,输入:</span></p>
<p lang="en-US">>use mysql;</p>
<p><span lang="en-US">></span><span lang="zh-CN">update user set authentication_string=password('</span><span lang="en-US">123456') where user='root';</span></p>
<p><span lang="zh-CN">操作完成记得把</span><span lang="en-US">my.ini</span><span lang="zh-CN">文件中的</span><span lang="en-US">skip-grant-tables</span><span lang="zh-CN">删掉或注释掉。</span></p>
<p lang="en-US">--------------------------------------------------</p>
<p><span lang="zh-CN">五、卸载</span><span lang="en-US">MySQL</span></p>
<p><span lang="zh-CN">1</span><span lang="zh-CN">、关闭</span><span lang="en-US">mysql</span><span lang="en-US">服务:以管理员身份运行</span><span lang="en-US">cmd</span><span lang="en-US">,执行命令:</span><span lang="en-US">net stop mysql</span></p>
<p><span lang="zh-CN">2</span><span lang="zh-CN">、卸载</span><span lang="en-US">mysql</span><span lang="en-US">服务:在</span><span lang="en-US">mysql\bin</span><span lang="en-US">目录下输入命令:</span><span lang="en-US">mysqld -remove [</span><span lang="en-US">服务名</span><span lang="en-US">]</span><span lang="en-US">(或</span><span lang="en-US">mysqld remove</span><span lang="en-US">)</span></p>
<p><span lang="zh-CN">3</span><span lang="zh-CN">、删除</span><span lang="en-US">mysql</span><span lang="en-US">安装目录文件</span></p>
<p>4、删除注册表信息</p>
<p><span lang="zh-CN">清除注册表中的该</span><span lang="en-US">MySQL</span><span lang="en-US">服务,有几个地方</span><span lang="en-US">:</span></p>
<p><span lang="zh-CN">a</span><span lang="zh-CN">、</span><span lang="en-US">HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQL</span><span lang="en-US">目录删除</span></p>
<p><span lang="zh-CN">b</span><span lang="zh-CN">、</span><span lang="en-US">HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL</span><span lang="en-US">目录删除</span></p>
<p><span lang="zh-CN">c</span><span lang="zh-CN">、</span><span lang="en-US">HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL</span><span lang="en-US">目录删除</span></p>
<p><span lang="zh-CN">注册表中的</span><span lang="en-US">ControlSet001</span><span lang="en-US">、</span><span lang="en-US">ControlSet002</span><span lang="en-US">不一定是</span><span lang="en-US">001</span><span lang="en-US">和</span><span lang="en-US">002</span><span lang="en-US">,可能是</span><span lang="en-US">ControlSet005</span><span lang="en-US">、</span><span lang="en-US">006</span><span lang="en-US">之类,删除的时候都删除就可以 。</span></p>
<p><span lang="zh-CN">5</span><span lang="zh-CN">、关键:这里还有</span><span lang="en-US">MySQL</span><span lang="en-US">的文件必须要删除,</span><span lang="en-US">C:\Documents and Settings\All Users\Application Data\MySQL</span></p>
<p><span lang="zh-CN">(注意:</span><span lang="en-US">Application Data</span><span lang="en-US">这个文件夹是隐藏的,需要打开个文件夹选择菜单栏 工具</span><span lang="x-IV_mathan">→</span><span lang="x-IV_mathan">文件夹选项</span><span lang="x-IV_mathan">→</span><span lang="x-IV_mathan">查看</span><span lang="x-IV_mathan">→</span><span lang="x-IV_mathan">隐藏文件和文件夹 一项选上 显示所有文件和文件夹 确定 )</span></p>
<p><span lang="zh-CN">以上</span><span lang="en-US">5</span><span lang="en-US">步完成,重启</span><span lang="en-US"> OK</span><span lang="en-US">!再次安装吧</span></p>
<p>六、常见问题</p>
<p lang="en-US">1.我的电脑-管理-计算机管理-事件查看器-Windows日志-应用程序:查看详细报错信息。</p>
<p>参考文档</p>
<p lang="en-US">1.Mysql解压版的安装和卸载及常见问题www.echojb.com/mysql/2016/11/19/263354.html</p>
<p lang="en-US">2.Windows下面安装和配置MySQL(5.6.20)http://blog.csdn.net/liujianminghero/article/details/38521359</p>
/blog/post/292/1522
-
windows10安装mysql8
<p><strong>一、下载mysql</strong></p><p>1、下载mysql</p><p>mysql最新版本下载地址:https://dev.mysql.com/downloads/mysql/</p><p>mysql存档旧版下载地址:https://downloads.mysql.com/archives/community</p><p>2、解压mysql</p><p>将下载的mysql-8.0.22-winx64.zip文件解压到指定的目录并重命名,如:D:\wamp\mysql80,即为mysql的安装目录。</p><p><strong>二、安装mysql</strong></p><p>1、设置PATH环境变量,右键“我的电脑-高级系统设置-环境变量-系统变量-path”,双击编辑将mysql 安装目录D:\wamp\mysql80\bin加入path中。</p><p>2、右键点击windows10右下角开始菜单,选择以管理员运行powershell,命令行进入到mysql的安装目录:</p><p>> cd d:\wamp\mysql80\bin</p><p>3、初始化mysql:</p><p>> .\mysqld --initialize --console</p><p>记下运行结果中随机生成的root密码,方便后期修改root密码。root@localhost: W/62jqidawwN</p><p>4、安装mysql服务:</p><p>> .\mysqld --install</p><p>5、启动mysql服务:</p><p>>net start mysql</p><p>6、登录、修改mysql密码:</p><p>>mysql -uroot -p</p><p>输入初始化的root密码</p><p>mysql>ALTER USER 'root'@'localhost' identified by '123456' PASSWORD EXPIRE NEVER;</p><p>mysql>flush privileges;</p><p>说明:mysql8.0开始密码认证插件默认为“caching_sha2_password”。但只有php7.1.20、7.1.21、7.1.22、7.2.8、7.2.9、7.2.10及php7.4以上版本才支持。除此,需要将mysql8.0的密码认证插件改为“mysql_native_password”。</p><p>mysql>ALTER USER 'root'@'localhost' identified with mysql_native_password by '123456';</p><p>mysql>flush privileges;</p><p>或者编辑mysql配置文件,更改默认的身份认证插件。在[mysqld]下添加:</p><p>default_authentication_plugin=mysql_native_password</p><p>7、开启php的mysql扩展,支持php连接mysql:</p><p>编辑d:/wamp/php72/php.ini,将extension=mysqli和extension=pdo_mysql前面的分号去掉后,重启apache:</p><p>>httpd -k restart</p><p>8、mysql8导入sql文件需指定字符编码,否则乱码报错:</p><p>>mysql -uroot -p --default-character-set=utf8mb4 testdb -e "source d:\test.sql"</p><p>如:mysql 8 ERROR 1064 (42000) at line ': You have an error in your SQL syntax; check the manual that c</p><p>9.创建my.ini配置文件,内容如下:</p><p># For advice on how to change settings please see</p><p># <a href="http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html" _mce_href="http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html">http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html</a></p><p># *** DO NOT EDIT THIS FILE. It's a template which will be copied to the</p><p># *** default location during install, and will be replaced if you</p><p># *** upgrade to a newer version of MySQL.</p><p><br /></p><p>[client]</p><p>default-character-set = utf8mb4</p><p><br /></p><p>[mysql]</p><p>default-character-set = utf8mb4</p><p><br /></p><p>[mysqld]</p><p># basedir = d:\wamp\mysql80</p><p># datadir = d:\wamp\mysql80\data</p><p># port = 3306</p><p>character-set-client-handshake = FALSE</p><p>character-set-server = utf8mb4</p><p>collation-server = utf8mb4_bin</p><p>init_connect = 'SET NAMES utf8mb4'</p><p>innodb_buffer_pool_size = 128M</p><p><br /></p><p>join_buffer_size = 128M</p><p>sort_buffer_size = 16M</p><p>read_rnd_buffer_size = 16M</p><p><br /></p><p># Remove leading # and set to the amount of RAM for the most important data</p><p># cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.</p><p># innodb_buffer_pool_size = 128M</p><p><br /></p><p># Remove leading # to turn on a very important data integrity option: logging</p><p># changes to the binary log between backups.</p><p># log_bin</p><p><br /></p><p># These are commonly set, remove the # and set as required.</p><p># basedir = .....</p><p># datadir = .....</p><p># port = .....</p><p># server_id = .....</p><p><br /></p><p># Remove leading # to set options mainly useful for reporting servers.</p><p># The server defaults are faster for transactions and fast SELECTs.</p><p># Adjust sizes as needed, experiment to find the optimal values.</p><p># join_buffer_size = 128M</p><p># sort_buffer_size = 2M</p><p># read_rnd_buffer_size = 2M</p><p><br /></p><p>sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES</p>
/blog/post/292/1521
-
backup.sh脚本一键自动备份到onedrive实操
<p>backup.sh脚本可以在vps或云服务器中快速、定期备份网站文件及数据库资料。以下为centos7中备份网站目录及mysql数据库资料的实际操作。</p>
<p><strong>一、backup.sh脚本的主要功能</strong></p>
<p>1、支持 MySQL/MariaDB/Percona 的数据库全量备份或选择备份;</p>
<p>2、支持指定目录或文件的备份;</p>
<p>3、支持加密备份文件(需安装 openssl 命令,可选);</p>
<p>4、支持上传至 Google Drive、Onedrive(需先安装 rclone 并配置,可选);</p>
<p>5、支持在删除指定天数本地旧的备份文件的同时,也删除 Google Drive 上的同名文件(可选)。</p>
<p><strong>二、安装及配置 rclone</strong></p>
<p>因为backup.sh脚本自动备份到onedrive需要先在centos7服务器上安装并配置rclone,详细步骤参考:</p>
<p><a href="//lvwo.com/blog/post/292/1517">http://lvwo.com/blog/post/292/1517</a></p>
<p>这里不在赘述。</p>
<p>如果backup.sh脚本自动备份不需要备份到onedrive,可以跳过这一步。</p>
<p><strong>三、backup.sh脚本的安装</strong></p>
<p>1、下载该脚本并赋予执行权限</p>
<p># wget --no-check-certificate https://github.com/teddysun/across/raw/master/backup.sh</p>
<p># chmod +x backup.sh</p>
<p>2、修改backup脚本配置文件</p>
<p># vim /root/backup.sh</p>
<p>根据自己的数据修改相关配置参数,主要修改如下,其他参数选择默认即可:</p>
<p># 加密FLG,true 为加密,false 为不加密,默认是加密:<br />
ENCRYPTFLG=true</p>
<p># 加密密码,重要,务必要修改:<br />
BACKUPPASS="12345test"</p>
<p>#MySQL/MariaDB/Percona 的 root 用户密码:<br />
MYSQL_ROOT_PASSWORD="12345abcde"</p>
<p># 指定 MySQL/MariaDB/Percona 的数据库名,留空则是备份所有数据库:<br />
MYSQL_DATABASE_NAME[0]="good"<br />
MYSQL_DATABASE_NAME[1]="test"</p>
<p>#需要备份的指定目录或文件列表,留空就是不备份目录或文件:<br />
BACKUP[0]="/data/www/default/test.tgz"<br />
BACKUP[1]="/data/www/default/test/"<br />
BACKUP[2]="/data/www/default/test2/"</p>
<p>#指定多少天之后删除本地旧的备份文件,默认为 7 天:<br />
LOCALAGEDAILIES="7"</p>
<p>#是否删除 Google Drive 、Onedrive或 FTP 上备份文件的 FLG,true 为删除,false 为不删除:<br />
DELETE_REMOTE_FILE_FLG=false</p>
<p>#设置 rclone config 时设定的 remote 名称,务必要指定:<br />
RCLONE_NAME="test"</p>
<p># 指定备份时设定的 remote 的目录,即挂载绑定的Google Drive 、 Onedrive 的子目录:<br />
RCLONE_FOLDER="testdir"</p>
<p># 是否开启rclone自动复制备份文件到Google Drive 、 Onedrive:<br />
RCLONE_FLG=true</p>
<p>3、一些注意事项的说明:</p>
<p>1)脚本需要用 root 用户来执行;</p>
<p>2)脚本需要用到 openssl 来加密,请事先安装好;</p>
<p>3)脚本默认备份所有的数据库(全量备份);</p>
<p>4)备份文件的解密命令如下:</p>
<p>openssl enc -aes256 -in [ENCRYPTED BACKUP] -out decrypted_backup.tgz -pass pass:[BACKUPPASS] -d -md sha1</p>
<p>5)备份文件解密后,解压命令如下:</p>
<p>tar -zxPf [DECRYPTION BACKUP FILE]</p>
<p>解释一下参数 -P:</p>
<p>tar 压缩文件默认都是相对路径的。加个 -P 是为了 tar 能以绝对路径压缩文件。因此,解压的时候也要带个 -P 参数。</p>
<p>例如:将备份的文件先解密再解压,命令如下:</p>
<p>cd /opt/backups</p>
<p>openssl enc -aes256 -in test_20210406043653.tgz.enc -out test_20210406043653.tgz -pass pass:abcde12345 -d -md sha1</p>
<p>tar -zxPf test_20210406043653.tgz</p>
<p>这时候备份文件就会解压到/opt/backups/temp目录下面了。</p>
<p>4、运行脚本开始备份</p>
<p>./backup.sh</p>
<p>脚本默认会显示备份进度,并在最后统计出所需时间。</p>
<p>如果你想将脚本加入到 cron 自动运行的话,就不需要前台显示备份进度,只写日志就可以了。</p>
<p>这个时候你需要稍微改一下脚本中的 log 函数。</p>
<p>log() {<br />
echo "$(date "+%Y-%m-%d %H:%M:%S")" "$1"<br />
echo -e "$(date "+%Y-%m-%d %H:%M:%S")" "$1" >> ${LOGFILE}<br />
}</p>
<p>改为:</p>
<p>log() {<br />
echo -e "$(date "+%Y-%m-%d %H:%M:%S")" "$1" >> ${LOGFILE}<br />
}</p>
<p>关于如何使用 cron 自动备份,网上有一堆教程,这里以 CentOS 6 来举例说明。</p>
<p>修改文件 /etc/crontab,内容如下:</p>
<p>SHELL=/bin/bash<br />
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin<br />
MAILTO=root<br />
HOME=/root</p>
<p># For details see man 4 crontabs</p>
<p># Example of job definition:<br />
# .---------------- minute (0 - 59)<br />
# | .------------- hour (0 - 23)<br />
# | | .---------- day of month (1 - 31)<br />
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...<br />
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat<br />
# | | | | |<br />
# * * * * * user-name command to be executed<br />
30 1 * * * root bash /root/backup.sh</p>
<p>以上表示,每天凌晨 1 点 30 分,以 root 用户执行一次 backup.sh 脚本。</p>
<p>注意:</p>
<p>一定要修改其中的 PATH 和 HOME 变量的值。</p>
<p>尤其是 HOME 变量,rclone 命令能否正确执行,是要依赖于其配置文件的。用 root 用户配置的话,其配置文件夹应该是 /root/.config/rclone ,所以要更改 HOME 的值。</p>
<p>最后,欢迎交流和提出意见。</p>
<p>参考:<a href="https://teddysun.com/469.html">一键备份脚本backup.sh</a></p>
/blog/post/292/1520
-
filezilla 配置文件的路径及制作绿色版方法
<p>一、filezilla 配置文件</p>
<p>1、filezilla 配置文件目录</p>
<p>在windows 10 的系统中默认安装filezilla后,其配置文件默认的保存目录为:%USERPROFILE%\AppData\Roaming\FileZilla。可以备份这个目录,方便日后更换电脑或重做系统时候快速恢复filezilla。其中filezilla.xml用户对filezilla设置参数的配置文件,sitemanager.xml为站点的配置文件。</p>
<p>2、filezilla配置文件导出</p>
<p>更简单的方法是,打开filezilla,点击filezilla菜单栏的”文件“-”导出“,在导出设置弹出框中,可根据需要依次勾选导出站点管理器记录、导出设置、导出列队、导出过滤器后,点击”确定“,会导出一个命名为”FileZilla.xml“的文件。只要在filezilla的新安装环境中,点击filezilla菜单栏的”文件“-”导入“,选择导入这个”FileZilla.xml“文件即可快速恢复站点列表和相关订制设置。</p>
<p>二、订制filezilla 的设置文件目录(绿色版)</p>
<p>1、安装filezilla 后,将FileZilla FTP Client\docs\fzdefaults.xml.example文件复制一份到FileZilla FTP Client目录下,并重命名为fzdefaults.xml。然后编辑fzdefaults.xml文件,大概71行左右为配置文件地址:</p>
<p><Setting name="Config Location">$SOMEDIR/filezilla/</Setting></p>
<p>可根据自己需要来修改,如将配置文件写入到filezilla 安装目录下的docs文件夹,就修改保存为:</p>
<div><Setting name="Config Location">./docs</Setting></div>
<div></div>
<div>这样点击filezilla菜单栏的”文件“-”导入“,选择导入我们备份的”FileZilla.xml“文件即可快速恢复站点列表和相关订制设置。而FileZilla FTP Client这个安装目录其实就成了一个绿色免安装版的filezilla ,可以任意复制到一处,只要运行其中的filezilla.exe,自己配置和写入的站点列表一样不会少了。</div>
/blog/post/292/1519
-
windows10中用rclone挂载onedrive
<p>一、软件下载</p>
<p>1、下载并安装rclone</p>
<p>下载rclone客户端后解压到相应目录如:D:\Program Files\rclone-v1.55.0-windows-amd64并加入到系统变量pach中。这时候通过终端命令行输入rclone --version就可以查看到rclone的版本信息了。</p>
<p>下载地址:</p>
<p>rclone官网 <a href="https://rclone.org/downloads/">https://rclone.org/downloads/</a></p>
<p lang="en-US">Github <a href="https://github.com/ncw/rclone">https://github.com/ncw/rclone</a></p>
<p>2、下载并安装</p>
<p>下载rclone在Windows平台的依赖工具winfsp,直接双击默认安装即可。</p>
<p>下载地址:</p>
<p>winfsp官网 <a href="http://www.secfs.net/winfsp/rel/">http://www.secfs.net/winfsp/rel/</a></p>
<p lang="en-US">Github <a href="https://github.com/billziss-gh/winfsp/">https://github.com/billziss-gh/winfsp/</a></p>
<p>二、配置rclone</p>
<p>1、在终端命令行中输入命令:rclone config</p>
<p>2、选择new remote菜单输入n后回车,然后输入name,如:test回车。就是后面挂载时用到的名字。</p>
<p>3、然后在出现的云盘列表中选择onedrive的序号(这个序号rclone不同版本会有变化一定要看清),如:26输入回车。</p>
<p>4、在接下来的client_id和client_secret两项都留空直接回车即可。</p>
<p>5、然后是选择onedrive的版本,有全球、美、德、中,根据自己需要选,不确定的就默认全球。输入global或对应数字1回车。</p>
<p>6、接下来的edit advanced config项,选择默认选项no输入n回车。</p>
<p>7、在use auto config项,选择默认项yes输入y回车即可。</p>
<p>8、这时浏览器会弹出onedrive的登录窗口,选择要挂载的onedrive用户登录确认授权即可,完成后浏览器会提示:Success! All done. Please go back to rclone.</p>
<p>9、在接下来的终端命令行中选择对应业务的时候选择OneDrive Personal or Business,即输入onedrive或对应数字1回车即可。</p>
<p>10、在“Found 1 drives, please select the one you want to use”项会列出可挂在的项,选择输入OneDrive对应的数字值0回车。</p>
<p>11、接下来Found drive 'root' of type 'business'…和Yes this is OK (default)两项默认输入y回车后会有如下信息:</p>
<p>Current remotes:</p>
<p>Name Type</p>
<p>==== ====</p>
<p>test onedrive</p>
<p>12、至此rclone config设置完成,输入q回车退出。保存的rclone配置文件路径为C:\Users\用户名\.config\rclone\rclone.conf</p>
<p>三、挂载onedrive并设置开机启动</p>
<p>执行onedrive的挂载命令无论是使用cmd命令行还是 git bash 终端。完成后退出终端或重启系统后挂载也会取消。</p>
<p>这时即使是使用rclone.bat设置开机自启动也不可以,因为还是调用的cmd来执行命令。</p>
<p>解决的办法,就是把rclone mount挂载命令,即将onedrive根目录下backup文件夹挂载到本地Q盘的命令语句:</p>
<p lang="en-US">rclone mount test:backup Q: --cache-dir C:\OnedriveTemp --vfs-cache-mode writes</p>
<p>写入保存到一个rclone.vbs文件中,内容如下:</p>
<p>Option Explicit</p>
<p>Dim WMIService, Process, Processes, Flag, WS</p>
<p>Set WMIService = GetObject("winmgmts:{impersonationlevel=impersonate}!\\.\root\cimv2")</p>
<p>Set Processes = WMIService.ExecQuery("select * from win32_process")</p>
<p>Flag = true</p>
<p>for each Process in Processes</p>
<p> if strcomp(Process.name, "rclone.exe") = 0 then</p>
<p> Flag = false</p>
<p> exit for</p>
<p> end if</p>
<p>next</p>
<p>Set WMIService = nothing</p>
<p>if Flag then</p>
<p> Set WS = Wscript.CreateObject("Wscript.Shell")</p>
<p> WS.Run "rclone mount test:backup Q: --cache-dir C:\OnedriveTemp --vfs-cache-mode writes", 0</p>
<p>end if</p>
<p>其中:</p>
<p>test:为前面rclone config中remote设置的name。</p>
<p>backup 为onedrive中的文件夹,可根据需要自行设置。</p>
<p>Q: windows本地挂载盘符,不要和本地的C盘、D盘等重复。</p>
<p>C:\OneDriveTemp 为本地缓存目录,可根据需要自行设置。</p>
<p>然后我们将rclone.vbs文件放到windows系统启动项目录下(在资源管理器地址中输入</p>
<p lang="en-US">%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup即可)</p>
<p>现在,双击运行rclone.vbs后,在电脑中就会看到挂载成功的Q盘了,这时可以在本地和onedrice快速上传下载文件了。往里面复制文件就是上传,从里面复制文件到其它盘就是下载。当然速度要比onedrive客户端快很多。</p>
<p>至此,onedrive磁盘的挂载完成,因为写入到了系统启动项,也不用担心重启电脑onedrive挂载盘会消失了。</p>
<p>磁盘挂载方法参考的simplove的blog,地址为<a title="simplove" href="https://simplove.me/archives/1765">https://simplove.me/archives/1765</a>,在此表示感谢!</p>
/blog/post/292/1518
-
centos7用rclone挂载onedrive
<p><strong>一、windows本机操作</strong></p>
<p>1、下载并安装rclone</p>
<p>在rclone官网https://rclone.org/downloads/ 下载rclone客户端后解压到相应目录如:</p>
<p>D:\Program Files\rclone-v1.55.0-windows-amd64并加入到系统变量pach中。</p>
<p>2、获取token信息</p>
<p>打开cmd运行如下命令:</p>
<p lang="en-US">rclone authorize "onedrive"</p>
<p>浏览器会弹出页面,选择onedrive对应的微软帐户登录,然后进行勾选授权请求的确认,成功后会提示:</p>
<p lang="en-US">Success! All done. Please go back to rclone.</p>
<p>这时候cmd命令行中已经返回了token信息。将token信息复制保存后备用,就是包括两个大括号{…………}在内的内容。</p>
<p><strong>二、centos服务器端操作</strong></p>
<p>1、安装rclone命令:curl <a href="https://rclone.org/install.sh">https://rclone.org/install.sh</a> | bash</p>
<p>2、配置rclone命令:rclone config</p>
<p>1)选择new remote菜单输入n后回车,然后输入name,如:test回车。就是后面挂载时用到的名字。</p>
<p>2)然后在出现的云盘列表中选择onedrive的序号,如:26输入回车。</p>
<p>3)在接下来的client_id和client_secret两项都留空直接回车即可。</p>
<p>4)然后是选择onedrive的版本,有全球、美、德、中,根据自己需要选,不确定的就默认全球。输入global或对应数字1回车。</p>
<p>5)接下来的edit advanced config和use auto config两项都选择输入n回车即可。</p>
<p>6)然后在result项粘贴上在本机windows上得到的token信息回车。</p>
<p>7)在接下来选择对应业务的时候选择OneDrive Personal or Business,即输入onedrive或对应数字1回车即可。</p>
<p>8)在 Found 1 drives, please select the one you want to use 项会列出可挂在的项,选择输入OneDrive对应的数字值0回车。</p>
<p>9) 接下来 Found drive 'root' of type 'business'…和Yes this is OK (default) 两项默认输入y回车即可。最后出现如下信息:</p>
<p>Current remotes:</p>
<p>Name Type</p>
<p>==== ====</p>
<p>test onedrive</p>
<p>10)至此rclone config设置完成,输入q回车退出。</p>
<p>2、挂载onedrvice</p>
<p>1)在centos下rclone挂载onedrive需要依赖fuse模块,先安装fuse命令:yum -y install fuse</p>
<p>2)在centos创建挂载目录,如:mkdir /home/odbak</p>
<p>3)执行rclone mount挂载命令</p>
<p>rclone mount格式:</p>
<p>rclone mount MountName:RemoteDir LocalDir --options</p>
<p>参数说明:</p>
<p>MountName:挂载名称,为rclone config中new remote创建的name。如test;</p>
<p>RemoteDir:OneDrive远程挂载路径,可以选择根目录或子目录。如/backup;</p>
<p>LocalDir:centos本地挂载路径。如/home/odbak(需挂载前创建);</p>
<p>--options:挂载命令的可选参数。如:</p>
<p>后台运行参数:--daemon</p>
<p lang="en-US">rclone mount参考:https://rclone.org/commands/rclone_mount/</p>
<p>参考实例:</p>
<p>rclone mount test:backup /home/odbak --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000 --daemon</p>
<p>4)通过df -h 命令可以查看到OneDrive挂载点,说明挂载成功。这时候在 /home/odbak 目录下新建文件,稍后即可自动同步到 OneDrive 了。</p>
<p>5)卸载命令: fusermount -qzu /home/odbak</p>
<p>6)设置开机自启挂载</p>
<p>创建vim /usr/lib/systemd/system/rclone.service</p>
<p>编辑内容为:</p>
<p lang="en-US">[Unit]</p>
<p lang="en-US">Description = rclone</p>
<p lang="en-US">Requires=network.target</p>
<p lang="en-US">[Service]</p>
<p lang="en-US">User = root</p>
<p lang="en-US">ExecStart = /usr/bin/rclone mount test:backup /home/odbak --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000</p>
<p lang="en-US">Restart = on-abort</p>
<p lang="en-US">[Install]</p>
<p lang="en-US">WantedBy = multi-user.target</p>
<p>然后保存文件退出后运行:</p>
<p>systemctl enable rclone</p>
<p>systemctl start rclone</p>
<p>现在已经可以开机自启,并通过服务管理 rclone 挂载了。</p>
<p>参考:</p>
<p lang="en-US"><a href="https://mengniuge.com/centos-rclone-onedrive.html">https://mengniuge.com/centos-rclone-onedrive.html</a></p>
<p lang="en-US"><a href="https://amagi.yukisaki.io/article/1c58acbb-21e4-45df-aa13-cc7614ae9bd6/">https://amagi.yukisaki.io/article/1c58acbb-21e4-45df-aa13-cc7614ae9bd6/</a></p>
/blog/post/292/1517
-
LifeType的资源汇总
<p>一、关于LifeType</p>
<p>LifeType是一个用php语言写的多用户的blog系统程序,最初是由创始人 Oscar Renalias 在 2003 年发布了初始版本,当时名字还叫plog。在2005年,因为plog的商标为Amazon所有,在与Amazon的友好协商后,将plog名字归还其使用。而plog这个blog系统就正式更名为LifeType。但最终英文官网将发布版本定格在LifeType 1.2.12(发布时间为2013-07-25),之后LifeType的官网http://lifetype.net/也慢慢关闭了。</p>
<p>二、LifeType的资源</p>
<p>1.LifeType程序在SourceForce的下载源:</p>
<p>LifeType主程序下载:https://sourceforge.net/projects/lifetype/</p>
<p>LifeType插件下载:https://sourceforge.net/projects/lifetype/files/lifetype-plugins/</p>
<p>LifeType模板下载:https://sourceforge.net/projects/lifetype/files/lifetype-templates/</p>
<p>最终发布版本为lifetype-1.2.12_r7211(20130725)</p>
<p>2.LifeType程序在LifeType官网的下载源:</p>
<p>包括LifeType主程序、插件和模板:http://lifetype.net/snapshots/</p>
<p>最终内部开发版本lifetype-1.2_r7217(20131216)</p>
<p>3.LifeType的邮件讨论列表http://limedaley.com/pipermail/plog-svn/</p>
<p>里面有关于LifeType在php7下实现的讨论,你可以订阅,也可以通过存档列表查看相关内容。</p>
<p>最终修改版本lifetype-1.2_r7254(20201015)</p>
<p>4.LifeType中文网站有丰富的LifeType教程、资料及相关讨论</p>
<p>庆幸的是,LifeType中文网站http://www.lifetype.org.cn/仍然可以打开,虽然最后的更新版本只是LifeType 1.2.8。但还是可以在该网及其论坛中查看到LifeType有关的实用资料。在这里要感谢Mark Wu,他既是LifeType的核心开发人员,也是LifeType中文社区的创始人及管理者。</p>
<p>三、LifeType的运行环境</p>
<p>对于LifeType 1.2.12,当时推荐的比较理想的运行环境也就是Apache 2.2 + PHP 5.2 + MySQL 5.1了。</p>
<p>虽然不做修改的话,LifeType 1.2.12也能在Apache 2.4 + PHP 5.6 + MySQL 5.6下跑起来。但是现在看来,这个php版本也是比较老了。</p>
<p>提示:LifeType 1.2.12官网的说法,最低可以运行在php4.2.0;也可以在php5.2.17,php5.3.29,php5.5.38,php5.6.51下运行。不要使用php5.4,我的实验,LifeType的多个版本在php5.4.45下前后台乱码,前端页面有报错,问题太多。</p>
<p>四、LifeType支持php7的解决方案</p>
<p>1.对此,一位希腊的网友Alexandros在2019年对内部开发版本LifeType 1.2.13-dev做了支持php7的修改。</p>
<p>这是下载地址https://github.com/acoul/lifetype</p>
<p>最终他修改后的运行环境为Gentoo 32bit apache-2.4.41 & php-7.2.25(也支持php-5.6.40)</p>
<p>我在Win10 Apache 2.4.43 ,PHP7.2.25,MySQL 5.7.31下做了测试,可以运行。</p>
<p>2.关于LifeType在php7下的实现,也有人在LifeType的邮件列表论坛里讨论,其实也是LifeType的核心开发人员jondaley,对php7的支持,也是在Alexandros基础上做的修改,同时对LifeType也有一些日常的更新。你可以订阅,也可以通过存档列表查看相关内容:http://limedaley.com/pipermail/plog-svn/</p>
<p>3.另外,台湾网友tommy也做了让LifeType支持php7的修改工作,并在他的blog上记录了大概修改思路,以及共享了修改文件的下载,具体见tommy的blog帖子:https://blog.teatime.com.tw/1/post/473</p>
/blog/post/1/1516
-
让LifeType在php7下运行
<p>一、前言</p>
<p>LifeType是一个用php语言写的多用户的blog系统程序,官网最后的发布版本为LifeType 1.2.12。</p>
<p>对于LifeType 1.2.12,当时推荐的比较理想的运行环境也就是Apache 2.2 + PHP 5.2 + MySQL 5.1了。</p>
<p>虽然不做修改的话,LifeType 1.2.12也能在Apache 2.4 + PHP 5.4 + MySQL 5.6下跑起来。但是现在看来,这个php版本也是比较老了。</p>
<p>二、让LifeType支持php7</p>
<p>1.对此,一位希腊的网友Alexandros在2019年对内部开发版本LifeType 1.2.13-dev做了支持php7的修改。</p>
<p>这是下载地址https://github.com/acoul/lifetype</p>
<p>最终他修改后的运行环境为Gentoo 32bit apache-2.4.41 & php-7.2.25(也支持php-5.6.40)</p>
<p>我在Win10 Apache 2.4.43 ,PHP7.2.25,MySQL 5.7.31下做了测试,可以运行。</p>
<p>2.关于LifeType在php7下的实现,也有人在LifeType的邮件列表论坛里讨论,其实也是LifeType的核心开发人员jondaley,对php7的支持,也是在Alexandros基础上做的修改,同时对LifeType也有一些日常的更新。你可以订阅,也可以通过存档列表查看相关内容:http://limedaley.com/pipermail/plog-svn/</p>
<p>3.另外,台湾网友tommy也做了让LifeType支持php7的修改工作,并在他的blog上记录了大概修改思路,以及共享了修改文件的下载,具体见tommy的blog帖子:https://blog.teatime.com.tw/1/post/473</p>
<p>三、LifeType的升级步骤</p>
<p>1.LifeType的升级操作,个人的建议还是要先在本机或测试环境中来进行。</p>
<p>2.确认无误,再移植到正式的服务器环境中,而且务必备份LifeType的mysql数据库及LifeType安装目录下的所有文件(包括程序文件、上传附件等)。</p>
<p>3.下载lifetype-1.2.13-dev的压缩包,解压复制到LifeType的安装目录(再次提醒,操作前务必先备份),覆盖旧文件。LifeType安装目录下重要的或可能修改的文件,大概如下,记得要保留或者重新拷贝回来:</p>
<p>config #配置文件夹<br />gallery #上传文件夹<br />imgs\plog_top.gif #summary.php首页banner<br />locale\locale_zh_CN.php #中文语言包<br />plugins #插件中文<br />styles\summary.css #summary.php风格文件<br />templates #模板,特别注意summary.php定制首页不要覆盖<br />.htaccess #目录设置、访问权限及重写规则</p>
<p>3.因为LifeType1.2基本没有对mysql数据库结构做修改,所以只要升级LifeType修改程序就可以运行了。</p>
<p>四、LifeType在php7下的一些小问题</p>
<p>1.之前LifeType主要在apache2.2下部署,如果使用了apache2.4,要记得修改.htaccess文件,因为apache2.4下控制目录访问权限的语句有了修改。否则程序没有权限执行。一般需要修改:</p>
<p>.\.htaccess</p>
<p>.\gallery\.htaccess</p>
<p>.\plugins\.htaccess</p>
<p>2.图片不能上传问题,是因为eregi函数被弃用,改为preg_match即可。打开class\gallery\getid3\getid3.php文件:</p>
<p><span>在</span><span>63</span><span>行</span></p>
<p>if (eregi('([0-9]+)M', $memory_limit, $matches)) {</p>
<p>改为</p>
<p>if (preg_match('([0-9]+)M', $memory_limit, $matches)) {</p>
<p>即可。这个修改已经在github上报给了Alexandros,新下载的程序已经做了修复。</p>
<p><span>3.发表文章,如果内文中有个别中英文混排,且之间没有空格的话,如“</span><span>plog</span><span>验证码”,则提交文章时,报错</span><span>500</span><span>。这时文章已经写入</span><span>mysql</span><span>,但因分词出问题,不能成功写入</span><span>token</span><span>表。解决方法为,</span>编辑文件class\bayesian\bayesiantokenizer.class.php第六行:</p>
<p>将</p>
<p>define( "SPLIT_REG_EXP", "/[^a-zA-Z0-9àáèéíïòóúüÀÁÈÉÍÏÒÓÚÜ'$!,.^-]+/");</p>
<p>改为</p>
<p>define( "SPLIT_REG_EXP", "[^a-zA-Z0-9àáèéíïòóúüÀÁÈÉÍÏÒÓÚÜ'$!,.^-]+");</p>
<p>4.<span>rss2.0</span><span>输出blog和文章标题乱码,这是几个版本都有的bug。编辑\templates\rss\rss20.template文件,有两处:</span></p>
<p>把</p>
<p>|escape:hexentity}</p>
<p>替换为:</p>
<p>|escape}</p>
<p> </p>
/blog/post/1/1515
-
google adsense付款还是走招行电汇最方便
<p>首先,只需去招商银行柜台办理一张个人的一卡通储蓄卡。</p>
<p>然后,登录Google Adsense帐户,选择“付款-管理付款方式-添加付款方式”,依次填入如下内容:</p>
<p>收款人 ID :(可选,可填写gmail用户名)<br />银行账户上的姓名:(填写在招商银行开办一卡通帐户的姓名拼音,如:Linghu Chong)<br />银行名称:(填写招商银行英文名称:China Merchants Bank)<br />SWIFT BIC:(填写招商银行SWIFT交易代码:CMBCCNBS)<br />帐号:(填写在招商银行开办一卡通帐户数字ID)<br />重新输入帐号:(重复填写在招商银行开办一卡通帐户数字ID)<br />设为主要付款方式:(勾选此项)</p>
<p>说明:</p>
<p>1) 其他什么中转银行的信息千万不要填写,留空即可。<br />2) 招商银行的英文名称填写成:<br />China Merchants Bank<br />China Merchants Bank, H.O.<br />China Merchants Bank, H.O.,CMB TOWER,7088 SHENNAN BOULEVARD, Shenzhen, China,<br />以上任意一个名称都可以,我是选最简单的,无伤大雅。<br />3) 一定确认银行账户姓名、SWIFT BIC、银行帐号不要出错即可,这三个是关键。</p>
<p>我实际操作的时间是:</p>
<p>8月30日晚上7点多,提交的招商银行电汇付款方式。<br />8月31日上午11点多,收到Google邮件提醒,Google AdSense:请检查您最近收到的款项,……,我们已将您的收入于 2020年8月30日支付给您。<br />如果这笔款项在本邮件日期算起的 5 个工作日内还未到帐,请与您的银行联系,以了解详情。<br />9月1日下午4点多,收到招商银行短信提醒帐户入账美元现汇的信息。</p>
<p>真的是太速度了。</p>
<p>30日当天搜了一下Google AdSense通过招商银行一卡通付款的信息,看到一个香港用户5月底在YouTube上发了一个视频,说用招行一卡通收款失败,当时还比较忐忑。没想到实际操作会这么容易。</p>
<p>而比之早些年的香港汇丰银行的支票托收,先要等很长时间收到支票,再去银行办托收。</p>
<p>再而通过西联快汇托收,可以收快汇信件,也可以直接记下西联快汇的资料,去邮政储蓄银行办托收,然后要填N份资料单;再后来办了银行外汇卡可以直接在网上银行自己办理托收。</p>
<p>到现在,只需在Google Adsense帐户后台填了银行电汇付款信息,就万事大吉,Google Adsense的收入直接支付到了个人银行帐户,真的是太方便了。</p>
<p>大家抓紧操作吧,听说Google AdSense在2021年要停用西联汇款的付款方式了。</p>
<p> </p>
/blog/post/11/1514
-
phpstorm2020安装官方中文语言包
<p><span>安装完phpstorm后,一般情况下设置中文语言会很容易:</span></p>
<div><br />
<div>1. 只需打开phpstorm,点击菜单file-setings-plugins-Marketplace:在搜索框中搜索“chinese”,在搜索结果中选择安装“Chinese (Simplified) Language Pack EAP”插件,然后重启phpstorm后就是中文界面了。</div>
<div></div>
<div>2. 但我在安装phpstorm2020.1.1后,在plugins中根本搜不到官方的中文语言包。于是只能去官网插件库https://plugins.jetbrains.com中搜索“chinese”,选择进入“Chinese (Simplified) Language Pack EAP”插件页面,点击插件名称右侧的“get”键,会切换到“Install to IDE”,选择“phpstorm2020.1.1”会自动安装到phpstorm,然后确定重启即可。</div>
<div></div>
<div>3. 以上如果还不起作用,就直接在官方语言包页面<a href="https://plugins.jetbrains.com/plugin/13710-chinese-simplified-language-pack-eap/versions">https://plugins.jetbrains.com/plugin/13710-chinese-simplified-language-pack-eap/versions</a>选择phpstorm对应版本的中文版语言包下载下来(如phpstorm2020.1.1版就下载zh.201.7223.91.jar)。在菜单file-setings-plugins页面,点击那个小齿轮,选择“install plugin from disk ”,找到下载到本地硬盘的中文语言包插件文件zh.201.7223.91.jar,选择安装,然后重启phpstorm就是中文版了。</div>
<div></div>
</div>
<div>提示:</div>
<div>其他第三方的汉化语言包在最新版的phpstorm中已经不支持了,谨记官网最香。</div>
<div>另外,有不能在phpstorm安装的插件,也可以在https://plugins.jetbrains.com搜索下载后,离线安装。</div>
<p> </p>
/blog/post/11/1513
-
Blogger设置响应式主题模板及首页改为文章提要和阅读全文
<p><span>一、修改模板为响应式</span><br /><br /><span>Blogger官方的一些主题模板对移动端访问不太友好,而且默认的移动版主题也不太美观。所以,就拿自己的模板来修改吧。这样至少全平台blog都是一个样式风格。</span><br /><br /><span>思路就是在css中加入移动端样式,这时候需要把模板样式中的div容器的width是绝对值的,给它改成在移动设备下width为100%显示;不需要的边栏和模块设置为隐藏。例如:</span></p>
<pre>/* 新增自适应样式*/<br />@media screen and (max-width:768px){<br />body{min-width:100%;width:100%;}<br />#wrapper{min-width:100%;max-width:100%;width:100%;}<br />#center,#center #squeeze{width:100%;}<br />#center{padding-left:0;padding-right:0;}<br />#sidebar-left,#sidebar-right{display:none;}<br />}</pre>
<div>然后将上述样式放入下面代码之间即可:</div>
<div>
<pre> <b:skin><![CDATA[<br /> ...<br /> ]]></b:skin> </pre>
</div>
<div>其实,还需要做移动端的菜单,暂时没有精力,先做这么多。</div>
<div><br />二、首页文章列表非全文显示<br /><br />我的模板在blog首页默认全文显示的,碰到长的文章,整个首页会拉的非常长,看起来也不太美观。<br /><br />网上搜到的Blogger传统的显示文章提要大概是这两个思路。<br /><br />其一,发文章的时候,把文章内容前面一两个段落用“< ! -- more -- >”截一下。然后模板里设置首页读取文章摘要。<br /><br />其二、是使用js方法,除了要修改模板,还需要引入一段js代码,操作也不太方便。<br /><br />现在,blogger对于文章列表以提要显示,已经做得很好。我使用的就是blogger默认移动版主题的应用方案。即在文章显示处增加一个判断,首页和list页以提要显示,除此全文显示。<br /><br />例如,选择,Blogger后台-主题背景-修改html,做如下修改:<br /><br />原来模板里文章全文显示的模块:</div>
<div>
<pre> <div class='content'><br /> <p><br /> <data:post.body/><br /> </p><br /> </div></pre>
</div>
<div>改为文章提要显示,并加上“浏览全文”的链接:</div>
<div>
<pre> <div class='content'><br /> <p><br /> <b:if cond='data:blog.pageType == &quot;index&quot;'><br /> <div class='post-body'><br /> <data:post.snippet/><br /> </div><br /> <div class='jump-link'><br /> <a expr:href='data:post.url' expr:title='data:post.title'><data:post.jumpText/></a><br /> </div><br /> <b:else/><br /> <data:post.body/><br /> </b:if><br /> </p><br /> </div></pre>
</div>
<div>如果希望首页文章除了提要、浏览全文,再显示一幅文章图片的缩略图的话,就改为:</div>
<div>
<pre> <div class='content'><br /> <p><br /> <b:if cond='data:blog.pageType == &quot;index&quot;'><br /> <div class='mobile-index-contents'><br /> <b:if cond='data:post.thumbnailUrl'><br /> <div class='mobile-index-thumbnail'><br /> <div class='Image'><br /> <img expr:src='data:post.thumbnailUrl'/><br /> </div><br /> </div><br /> </b:if><br /> <div class='post-body'><br /> <b:if cond='data:post.snippet'><br /> <data:post.snippet/><br /> </b:if><br /> </div><br /> </div><br /> <div class='jump-link'><br /> <a expr:href='data:post.url' expr:title='data:post.title'><data:post.jumpText/></a><br /> </div><br /> <b:else/><br /> <data:post.body/><br /> </b:if> <br /> </p> <br /> </div></pre>
</div>
<div>然后,在css代码中加入支持缩略图的样式。如:</div>
<div>
<pre>/* 缩略图样式*/
.mobile-index-contents{margin-right:25px;min-height:25px}
.mobile-index-thumbnail{float:left;margin:.2em 1em 0 0}
.mobile-index-thumbnail img{width:72px !important;}
.post-body{width:100%;_overflow:hidden}
.jump-link{float:right;}</pre>
这样,工作就算完成了。</div>
<p> </p>
/blog/post/11/1512
-
Blogger启用https访问的简单实现
<p><span>Blogger的自定义域名启用https访问的简单实现方法如下:</span><br /><br /><span>1.首先得到一个国内可访问的Google的 IP 地址。</span><br /><br /><span>2.打开</span><a href="http://tools.tracemyip.org/">http://tools.tracemyip.org/</a><span>网站左上角搜索框输入上面的IP进行搜索。</span><br /><br /><span>3.在搜索结果中找到Reverse DNS pointer:该项中的二级域名。</span><br /><br /><span>(提示:该二级域名的主域名应是 1e100.net 的,如果是 googlehosted.com后缀的则不可用。即我们需要的是xxxxx.1e100.net格式的二级域名。)</span><br /><br /><span>4.登陆自己的域名后台,把绑定Blogger的域名CNAME指向该二级域名。</span><br /><br /><span>5.最后登陆Blogger后台-设置-基本:右侧的“HTTPS 可用性”下,选择是。</span><br /><br /><span>6.如果希望http访问重定向到https,只需将步骤5同页中的“HTTPS 重定向“选择是即可。</span><br /><br /><span>注:以上创意来自</span><a href="https://blog.iljw.me/2018/07/enable-blogger-https.html">https://blog.iljw.me/2018/07/enable-blogger-https.html</a><span>,本人仅作操作流程的精简。</span><br /><br /><span>附注:</span><br /><br /><span>7.如果在第6步操作完提示:</span><br /><span>“您未获得使用此域的授权。请按照设置说明执行相应操作。”</span><br /><span>(You have not been authorized to use this domain. Please follow the settings instructions.)</span><br /><br /><span>请重新浏览Blogger后台-设置-基本页面:点击发布-博客地址处的“修改”按钮。按照提示给自己的域名新建一个随机码的二级域名CNAME到gv-xxx.dv.googlehosted.com格式的域名即可。</span><br /><br /><span>8.如果以上操作还不能解决问题:那就在Blogger后台-设置-基本页面:点击发布-博客地址处的“修改”右侧的“x”按钮,就是把自定域名删掉。这时候Blogger只保留xxx.blogspot.com的地址,会自动开启https。然后再把自己要绑定的域名重新添加上就可以了。</span></p>
/blog/post/11/1511
-
Apache报错:Invalid command 'SSLPassPhraseDialog', perhaps misspelled...的问题。
<p>Apache检查语法httpd -t 报错:Invalid command 'SSLPassPhraseDialog', perhaps misspelled...的问题。</p>
<p><span>先说一下应用场景,服务器环境为CentOS7.7,Apache2.4.6。</span><br /><br /><span>安装完mod_ssl</span><br /><span># yum -y install mod_ssl</span><br /><br /><span>检查Apache语法</span><br /><span># httpd -t</span><br /><br /><span>即出现如下报错:</span><br /><span>AH00526: Syntax error on line 18 of /etc/httpd/conf.d/ssl.conf: Invalid command 'SSLPassPhraseDialog', perhaps misspelled or defined by a module not included in the server configuration</span><br /><br /><span>这时候是不能重启Apache的。</span><br /><br /><span>只需编辑ssl配置文件:</span><br /><span># vim /etc/httpd/conf.d/ssl.conf</span><br /><br /><span>在 Listen 443 https 的下面加入:</span><br /><br /><span>LoadModule ssl_module modules/mod_ssl.so</span><br /><br /><span>就解决问题了。</span><br /><br /><span>以往,从没出现过此类问题,此次就手动指定mod_ssl吧,仅作记录。</span></p>
/blog/post/11/1510
-
妞妞要入托了~
<p>
今天是个特别的日子,妞妞要上幼儿园了,今天和妞爸带着妞妞一起去了幼儿园交了入托的助学金,很有讽刺意义的是我们照着一个打印出的稿件,用自己的手写了一个自愿捐款的协议书,然后签上了妞爸的大名,这是自愿吗?可是不是自愿又能怎样,就这个入托的名额也是托了朋友才能进来的,现在上幼儿园也要有很硬的关系,没有是进不来的。钱交了,连个收据都没有给,弄的我和妞爸郁闷了半天,是不是人家忘了给了,妞爸想回去问问,我给一个同样刚办了手续的朋友打电话,原来她同样没有得到任何的收据,钱就这样交了。
</p>
<p>
妞妞很安静,大概知道了自己已经到了要上学的年龄,这半年多,我们一直的在不停的灌输妞妞要上幼儿园的信息,现在的宝宝终于接受了这个事实,不知道是因为一个人在家无聊还是因为每次出去都有人不停的问小东西是不是已经上学了,反正,小东西现在自己要求上幼儿园,不在抵触,这是我想要的,我不希望我的女儿将来想起来上幼儿园的过程是个恐怖的回忆。也希望小东西的童年有我和妞爸的陪伴是幸福的,我们都不希望错过她任何一秒的成长点滴。
</p>
<p>
小东西还可以过一个月的无组织无纪律的生活,就让她尽情的享受吧,8月份开始,小东西就要开始无止境的学习生涯了~
</p>
/blog/post/230/1467
-
勿语
<p>
多少年没有记录过自己的幸福了?时间好像长的自己也记不起来了,看着自己以前写的东西,竟发现自己的记忆出现了短路,原来有这么多好玩的事情,这么多曾感动的东西都以被我遗忘了,忘的象没有发生的一样,开始后悔为什么没有坚持写下来,把那些让我感动的,和感动别人的记录下来,这笔财富是谁也拿不走的。等我老的再也走不动的时候,做在摇椅上慢慢的回忆。
</p>
<p>
时间过的太快了,6年了,这6年发生了很多很多事情, 6年中,找到了我爱的也是更爱我的爱人(老公一直为他更爱我而抱憾),有了一个人见人爱,象白雪公主一样可爱的女儿,老公催我快点写女儿的成长笔记,小东西每天都在带给我们无限的快乐,无限的感动,写下来是怕自己象遗忘了昨天一样,把小东西成长中的每一天,每一分钟,每一秒张的感动全都忘光了,希望我能留住这些快乐的瞬间。
</p>
/blog/post/230/1466
-
驴窝网志重新归来!
<p>
驴窝网志重新归来,Blog程序升级到LifeType 1.2.8。
</p>
<p>
<img src="/blog/imgs/lt_logo_plant.jpg" alt="lifetype logo" />
</p>
/blog/post/1/1465
-
301重定向正则表达式实例应用
<p><span>修改.htaccess文件达到301重定向的目的,其中如果想将domain.com域名下的所有url转到www.domain.com下,规则如下:</span><br /><br /><span>Options +FollowSymLinks</span><br /><span>RewriteEngine on</span><br /><span>RewriteCond %{HTTP_HOST} ^domain.com [NC]</span><br /><span>RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]</span><br /><br /><span>但实际用到的301转向并不是如此简单的应用,诸如程序调整目录,文件命名规则的改变,就需要用到正则表达式来设置相关的301重定向了,几个简单的301重定向正则表达式的例子如下:</span><br /><br /><span>RewriteRule ^(.*?)(\/\d.*)$ $1_bing$2 [R,L]</span><br /><span>RedirectMatch ^/archiver/(.*)$ /bbs/archiver/$1 [L]</span><br /><span>RedirectMatch ^/chrome/([a-zA-Z]+)/(.*).html$ /chrome/$1-$2.html [L]</span><br /><span>RedirectMatch ^/msn/([a-z]+)/(\d{4})([0-9]+).html$ /live/$1/2009$3.html [L]</span><br /><br /><br /><span>([a-z]+)表示多位的小写英文字母。</span><br /><span>([a-zA-Z]+)表示多位的大小写英文字母。</span><br /><br /><span>([0-9])表示单个的阿拉伯数字;</span><br /><span>([0-9]{1,2})表示两位的阿拉伯数字;</span><br /><span>([0-9]+)表示多位的阿拉伯数字;</span><br /><br /><span>(\d)同上一个。</span><br /><span>(\d{4})表示多位的阿拉伯数字的前四位数字。</span><br /><span>(\b)表示单词的开始或结束; (\w)表示任意的字母或数字或下划线或汉字;</span><br /><span>(\s)表示任意的空白符;</span><br /><br /><span>(.*)表示任意字符。</span><br /><br /><span>redirect 301 /go/search.htm /data/google.html</span><br /><span>redirect permanent /go/search.htm /data/google.html</span><br /><span>其中redirect permanent和redirect 301应用效果相同。</span><br /><br /><span>更多正则表达式的内容看这里吧</span><a href="http://zh.wikipedia.org/wiki/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F">http://zh.wikipedia.org/wiki/正则表达式</a><br /><span>月光博客自己总结的常用正则表达式</span><a href="http://www.williamlong.info/archives/433.html">http://www.williamlong.info/archives/433.html</a></p>
/blog/post/11/1509
-
小妞一岁八个月的风雨江湖
<p><span> 小妞到昨天是整整一岁九个月了,从她出生初闯江湖起,每一天都和我们分享着她不同的成长快乐。她用自己的眼睛、嘴巴和手脚努力的探求世界,因为太过积极,会时不时的经历风险。不过说来在她一周八个月的三十来天中,确实也学到了太多的东西,这里就以图文记录下来吧。</span><br /><br /><a href="https://lh4.ggpht.com/_AHCTJbfnaiI/Sji2fnpBonI/AAAAAAAABFc/ZjBUTLr9BxM/s400/20090227.jpg" target="_blank"><img src="https://lh4.ggpht.com/_AHCTJbfnaiI/Sji2fnpBonI/AAAAAAAABFc/ZjBUTLr9BxM/s400/20090227.jpg" alt="alt" /></a><br /><br /><br /><br /><span>一、荡起了秋千</span><br /><br /> <br /><span>小家伙第一次玩荡秋千就很兴奋,当时一岁五个多月,两只手紧紧的抓着铁链子,开心溢于言表;荡秋千很简单,但是对于一个小孩子,体验一种全新的运动方式,需要自己来控制平衡,但他们喜欢这种挑战,快乐自在其中。现在小家伙玩荡秋千很熟练并乐此不疲。</span><br /><br /><a href="https://lh4.ggpht.com/_AHCTJbfnaiI/Sji2wkgJlXI/AAAAAAAABF4/EDYwZONFrpM/s400/20090504IMG0304A.jpg" target="_blank"><img src="https://lh4.ggpht.com/_AHCTJbfnaiI/Sji2wkgJlXI/AAAAAAAABF4/EDYwZONFrpM/s400/20090504IMG0304A.jpg" alt="alt" /></a><br /><br /><span>(一岁七个多月的妞)</span><br /><br /><br /><br /><br /><br /><span>二、学会了蹬小三轮车</span><br /><br /> <br /><span>1.妞虽然从八个月的时候就喜欢坐着这个桔黄色的儿童三轮车上晃悠,但无奈,脚蹬车蹬前行、控制车把方向这两项高技术含量的技能太难掌握了,于是骑车就成了做做样子了,你看她那小样:</span><br /><br /><a href="https://lh6.ggpht.com/_AHCTJbfnaiI/SFlND_d9zKI/AAAAAAAAAT0/l9oCewQEFq0/s400/22.jpg" target="_blank"><img src="https://lh6.ggpht.com/_AHCTJbfnaiI/SFlND_d9zKI/AAAAAAAAAT0/l9oCewQEFq0/s400/22.jpg" alt="alt" /></a><br /><br /><span>(八个月的妞坐在车上也不亦悦乎)</span><br /><br /> <br /><span>2.经过一年时间的艰苦历练,小家伙终于可以蹬着小三轮车满屋跑了,当她第一次成功的蹬着脚蹬子往前走的喜悦,我想她心里一定狠狠的说:终于把你这个家伙拿下啦。</span><br /><br /><a href="https://lh6.ggpht.com/_AHCTJbfnaiI/Sji3FIo5SSI/AAAAAAAABGQ/hO07dMXHwH0/s400/20090524%28001%29.jpg" target="_blank"><img src="https://lh6.ggpht.com/_AHCTJbfnaiI/Sji3FIo5SSI/AAAAAAAABGQ/hO07dMXHwH0/s400/20090524%28001%29.jpg" alt="alt" /></a><br /><br /><span>(妞:我可以在家里骑车兜风啦:P)</span><br /><br /><br /><br /><br /><br /><span>三、玩遍各式各样的滑梯套餐</span><br /><br /> <br /><span>1.少年宫的滑梯,第一次还老老实实的玩那最初级的小滑梯和旋转滑梯,在为她流畅的滑下来,不用再做保护而欣慰。</span><br /><br /><a href="https://lh6.ggpht.com/_AHCTJbfnaiI/Sji3FA5NTWI/AAAAAAAABGM/6979XQbVyOA/s400/20090522%28001%29.jpg" target="_blank"><img src="https://lh6.ggpht.com/_AHCTJbfnaiI/Sji3FA5NTWI/AAAAAAAABGM/6979XQbVyOA/s400/20090522%28001%29.jpg" alt="alt" /></a><br /><br /><br /><br /><span> 2.结果没几天的时间,再去的时候那组滑梯的各个组件都被她自己充满好奇心的玩了一遍,而不需要我们做辅助。</span><br /><br /><a href="https://lh5.ggpht.com/_AHCTJbfnaiI/Sji4FWx3X3I/AAAAAAAABGg/Q5sekcr68kg/s400/20090531.jpg" target="_blank"><img src="https://lh5.ggpht.com/_AHCTJbfnaiI/Sji4FWx3X3I/AAAAAAAABGg/Q5sekcr68kg/s400/20090531.jpg" alt="alt" /></a><br /><br /><span>(从这里爬上去)</span><br /><br /><a href="https://lh3.ggpht.com/_AHCTJbfnaiI/Sji4PKMe7tI/AAAAAAAABGo/IwWcGzFobPo/s400/20090531%28002%29.jpg" target="_blank"><img src="https://lh3.ggpht.com/_AHCTJbfnaiI/Sji4PKMe7tI/AAAAAAAABGo/IwWcGzFobPo/s400/20090531%28002%29.jpg" alt="alt" /></a><br /><br /><span>(从这里滑下来)</span><br /><br /><a href="https://lh4.ggpht.com/_AHCTJbfnaiI/Sji4PA7be-I/AAAAAAAABGs/kZ2XGeF_iuE/s400/20090605%28001%29.jpg" target="_blank"><img src="https://lh4.ggpht.com/_AHCTJbfnaiI/Sji4PA7be-I/AAAAAAAABGs/kZ2XGeF_iuE/s400/20090605%28001%29.jpg" alt="alt" /></a><br /><br /><span>(穿越绳洞)</span><br /><br /><a href="https://lh6.ggpht.com/_AHCTJbfnaiI/Sji4Pa_kriI/AAAAAAAABGw/TlNm1AJlGi0/s400/20090605%28006%29.jpg" target="_blank"><img src="https://lh6.ggpht.com/_AHCTJbfnaiI/Sji4Pa_kriI/AAAAAAAABGw/TlNm1AJlGi0/s400/20090605%28006%29.jpg" alt="alt" /></a><br /><br /><span>(穿越绳洞2)</span><br /><br /><br /><br /><a href="https://lh3.ggpht.com/_AHCTJbfnaiI/Sji4PTMJ1mI/AAAAAAAABG0/49fO9sC_uLg/s400/20090605%28007%29.jpg" target="_blank"><img src="https://lh3.ggpht.com/_AHCTJbfnaiI/Sji4PTMJ1mI/AAAAAAAABG0/49fO9sC_uLg/s400/20090605%28007%29.jpg" alt="alt" /></a><br /><br /><span>(虽然是有保护的独木桥,小妞走起来一样小心翼翼)</span><br /><br /><br /><br /><span>四、能清楚无误的从1数到10了</span><br /><br /> <br /><span>1.这同样是一个贯穿了几个月的学习工程,从开始一岁时走路说的“一、二、一”,到后来真正开始数数。但她的成绩始终是“1、3、5、6、7、8、9、10”或者“1、3、6、7、8、9、10”,2、4是她坚持要落下不数的数字。</span><br /><br /><a href="https://lh4.ggpht.com/_AHCTJbfnaiI/SM_bS5UxZlI/AAAAAAAAAlU/_-6USLM_TDU/s400/080912_2.jpg" target="_blank"><img src="https://lh4.ggpht.com/_AHCTJbfnaiI/SM_bS5UxZlI/AAAAAAAAAlU/_-6USLM_TDU/s400/080912_2.jpg" alt="alt" /></a><br /><br /><span>(瞧,一岁时的傻样)</span><br /><br /> <br /><span>2.等她到一岁八个半月的时候,这项刷新她自己的数学学习史的记录终于出现了,小妞子自己突然就能完整的从1数到10了,不过你可别被她的假象所迷糊,事实上,物体的数量,她只能掌握到3个,当有4个李子放到她前面的时候,她就会蒙着说七个或者八个。</span><br /><br /><a href="https://lh4.ggpht.com/_AHCTJbfnaiI/Sji3Exb8H0I/AAAAAAAABGI/1C1UxzzjXcs/s400/20090515.jpg" target="_blank"><img src="https://lh4.ggpht.com/_AHCTJbfnaiI/Sji3Exb8H0I/AAAAAAAABGI/1C1UxzzjXcs/s400/20090515.jpg" alt="alt" /></a><br /><br /><br /><br /><span>五、开始完整的唱出儿歌</span><br /><br /> <br /><span>妞子妈在小家伙很小的时候就经常给她唱童谣、儿歌;在一岁八个多月的时候突然就有了收获,一次在户外玩的开心的小妞很自然的唱出了童谣“小白兔,白又白,……”,没几天就有学会了“小老鼠,上灯台,……”。也终于可以听到小人奶声奶气的说出更多完整的话来,大家开心自然难免。</span><br /><br /><a href="https://lh5.ggpht.com/_AHCTJbfnaiI/Sji3E7hlzhI/AAAAAAAABGE/qeYymQnKh6Y/s400/20090514IMG0312A.jpg" target="_blank"><img src="https://lh5.ggpht.com/_AHCTJbfnaiI/Sji3E7hlzhI/AAAAAAAABGE/qeYymQnKh6Y/s400/20090514IMG0312A.jpg" alt="alt" /></a><br /><br /><br /><br /><br /><br /><span>六、可以用筷子吃饭了</span><br /><br /> <br /><span>小妞好像有些能吃辣,比如烤串、鸭脖子带点辣味都能接受,这不又吃起了麻辣烫,我和她娘惊奇的发现,她用筷子夹起麻辣烫来轻松平常。看来她几个月来在餐桌上自己用筷子糟蹋饭菜也算有了成绩,恭喜一下吧。</span><br /><br /><a href="https://lh5.ggpht.com/_AHCTJbfnaiI/Sji4hrgKILI/AAAAAAAABG8/WKOaoSV0_zw/s400/20090613.jpg" target="_blank"><img src="https://lh5.ggpht.com/_AHCTJbfnaiI/Sji4hrgKILI/AAAAAAAABG8/WKOaoSV0_zw/s400/20090613.jpg" alt="alt" /></a><br /><br /><span>(这对妞来说也算大快朵颐了)</span></p>
/blog/post/11/1508
-
dedecms5.1升5.31需要注意的小地方
<p><span>dedecms是一款很不错的开源的cms,但在使用中出现小问题,到官网论坛去交流互动很差。不过,很难得的是很多用dedecms的朋友会把自己应用的一些心得公之于blog或bbs。这样通过搜索引擎就可以找到自己想要的东西了。</span><br /><br /><span>我在dedecms5.1升5.31的时候也碰到了两个怪异的小问题:</span><br /><br /><span>1. dede5.31数据表中litpic字段数值比5.1时要小,这样升级就会有损失,只要在升级前修改u.createtable.sql文件中litpic的值大一些,我改成了120。</span><br /><br /><span>2. 升级完成之后,不知为什么会自动写入一篇ID为11111111的文章,你再发文章ID就会累计为11111112,而不是从你原来的文章ID上累积。这时只要在数据库中删掉ID为11111111的文章数据,在dede_arctiny表中将Autoindex的数值改为你的最大文章ID+1就可以了。</span><br /><br /><span>3. 文章页边栏的推荐内容、热点内容不显示内容,需要在dedecms管理后台-系统基本参数-性能选项的“id 文档ID,content 标签最终内容”,改为id(原为content ),执行完该操作重新生成文章页即可。</span><br /><br /><span>4. dedecms5.31的文章副栏目功能是默认关闭的,需要到dede后台-系统设置-系统基本参数-性能选项页面,选上"是否启用副栏目"即可。但副栏目的文章不会在父栏目或者频道页显示。解决这个问题,需要修改dedecms安装目录下的/include/taglib/arclist.lib.php的文件第178行的内容为(该修改由网友georgegodman提供):</span><br /><br /><span>//if($CrossID=='') $orwheres[] = ' arc.typeid in ('.GetSonIds($typeid).')';</span><br /><span>//else $orwheres[] = ' arc.typeid in ('.GetSonIds($typeid).','.$CrossID.')';</span><br /><span>if($CrossID=='') $orwheres[] = ' (typeid in ('.GetSonIds($typeid).') or typeid2 in ('.GetSonIds($typeid).'))';</span><br /><span>else $orwheres[] = ' (typeid in ('.GetSonIds($typeid).','.$CrossID.') or typeid2 in ('.GetSonIds($typeid).','.$CrossID.'))';</span><br /><br /><span>5. dede5.31发布文章时的来源、作者方式和5.1已经不一样了,如果不想用默认的方式,可以修改dedecms安装目录下的/dede/article_add.php文件的第95行处:</span><br /><span>//对保存的内容进行处理</span><br /><span>if(empty($writer))$writer=$cuserLogin->getUserName();</span><br /><span>if(empty($source))$source='未知';</span><br /><span>改为</span><br /><span>//对保存的内容进行处理</span><br /><span>if(empty($writer))$writer='佚名';</span><br /><span>if(empty($source))$source='网络';</span><br /><br /><span>6. 将频道、栏目的链接改为目录,而不是目录下的index.html。可以修改include/channelunit.func.php文件内容:</span><br /><br /><span>//$reurl = $typedir.'/'.$defaultname;</span><br /><span>注释掉上面一行,改为:</span><br /><span>$reurl = $typedir.'/';</span><br /><br /><span>7. 通过dede管理后台-核心-频道模型-自由列表管理生成Google Sitemap,添加内容如下图(该方法由网友kig提供):</span></p>
<div class="separator"><a href="https://4.bp.blogspot.com/_AHCTJbfnaiI/Se9V50urvII/AAAAAAAABDY/MDgDgsTF5Kk/s1600-h/googlesitemap.gif" target="_blank"><img src="https://4.bp.blogspot.com/_AHCTJbfnaiI/Se9V50urvII/AAAAAAAABDY/MDgDgsTF5Kk/s320/googlesitemap.gif" border="0" alt="alt" /></a></div>
<br /><span>每页记录数:5000,此处可以修改为一个比你的网站文章数大一些的数值。</span><br /><span>循环内的单行记录样式(InnerText)内容为:</span><br /><br /><span><url></span><br /><span><loc>[field:arcurl function="Gmapurl(@me)"/]</loc></span><br /><span><lastmod>[field:senddate function="strftime('%Y-%m-%d',@me)"/]</lastmod></span><br /><span><changefreq>weekly</changefreq></span><br /><span><priority>0.5</priority></span><br /><span></url></span><br /><span>其中<changefreq>为更新频率,可以根据自己的实际情况修改。</span>
<p> </p>
/blog/post/11/1507
-
石景山万达广场家乐福昨日起关门了
<p><span>前天石景山万达广场开业,看到万达广场边停了二十来辆GA的车子,其中还有两辆大客和几辆依维柯,里面坐满了武警内卫。仔细看车牌警车、武警、内卫悉数上场。</span><br /><br /><span>今天看到一则万达广场家乐福的新闻,才知道因为第一天开业人太多,家乐福应付不过来只好关门几天了。</span></p>
/blog/post/11/1506
-
Google Account有更新 模式或成互联网样板
<p><span>Google近日对Google Account界面做了更新,相比过去的右侧单列模式:</span><br /><br /><img src="https://lh6.ggpht.com/_AHCTJbfnaiI/SUIkh4Jw28I/AAAAAAAAA2Y/BM4kKyrP0t0/s288/Google-Account-old.gif" alt="alt" /><br /><br /><span>新的Google Account可以将你的全部Google products在一屏里显示出来,不过新版Google Account似乎只对英文版做了更新,中文版目前还是旧的模式,新Google Account界面如下:</span><br /><br /><img src="https://lh5.ggpht.com/_AHCTJbfnaiI/SUIkiCIaI5I/AAAAAAAAA2g/T6f3yz4YclY/s288/Google-Account.gif" alt="alt" /><br /><br /><span>个人觉得Google Account是Google产品中很核心的一个服务,通过它汇总了你的所有Google products。加上Google所有服务页面最上方的栏目导航,可以在Google各个服务间快速切换,而且难能可贵的是这个顶部的bar并不抢眼。Google大部分的服务相比其他网站提供的服务更贴心。就从顶部导航来看,百度、微软Live都在做,但它们对产品的整合已经顶部导航做的却混乱不堪。特别是Live,导航的内容不但没有统一,就连位置也突然在页面顶部,或者跑到页面中部,让人网站服务流程上实在不知所踪。</span><br /><br /><span>而QQ在这点做的更差,它几乎没有这个东西,你在QQ首页很难找到用户登录框,更别说QQ对个人提供的服务汇总了,光靠QQ客户端的整合推广是不够的。</span><br /><br /><span>闲话几句,其实就想说的是如何通过网站导航以及用户的Account更好的做好自己的服务流程成为太多互联网公司要做的课程。</span></p>
/blog/post/11/1504