btcTrade_project

本文详细介绍了在Linux环境下搭建Apache、安装Python2.7、配置MySQL并部署Django应用的全过程,包括遇到的问题及解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

待解决在问题:

sudo apt-get install yum

sudo yum install openssl-devel

sudo yum updae openssl

openssldir=/etc/ssl



--with-ssl=DIR  not --with-openssl=DIR



BTCTrade project

1、apache环境搭建:

编译错误解决方法:

编译:

/configure --prefix=/opt/apache --enable-track-vars --enable-cgi --with-config-file-path=/opt/apache/conf --enable-modules=all --enable-mods-shared=all --enable-file-cache --enable-disk-cache --enable-cache --enable-mem-cache --enable-dumpio --enable-logio --enable-mime-magic --enable-headers --enable-usertrack --enable-version --enable-ssl --enable-http --enable-rewrite --enable-proxy --enable-proxy-connect --enable-proxy-http --enable-proxy-ftp --enable-proxy-ajp --enable-proxy-balancer --enable-so
安装所有扩展模块意味着将 apache 功能扩展到极限,但如果你不会配置这些模块,或者置之不理,他们很可能会给你带来不必要的麻烦或者安全隐患。
下面是编译的报错:

checking for APR... no
configure: error: APR not found .  Please read the documentation.

可以用./configure –help | grep apr 查看帮助。
--with-included-apr     Use bundled copies of APR/APR-Util
--with-apr=PATH         prefix for installed APR or the full path to apr-config
--with-apr-util=PATH    prefix for installed APU or the full path to
安装APR(Apache Portable Runtime )
下载:http://apr.apache.org/download.cgi

$./configure --prefix=/usr/local/apr
$make
$make install

checking for APR-util... no
configure: error: APR-util not found .  Please read the documentation.

$./configure –help | grep apr-util
--with-apr-util=PATH    prefix for installed APU or the full path to

下载:http://download.chinaunix.net/download/0001000/472.shtml
$./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
$make
$make install

./configure仍提示APR-util not found,增加--with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util后出现
configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/

$./configure –help | grep pcre
--with-pcre=PATH        Use external PCRE library

下载:http://sourceforge.net/projects/pcre
$./configure --prefix=/usr/local/pcre
$make
$make install

继续安装Apache/httpd,./configure 时加上参数 --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/ --with-pcre=/usr/local/pcre,这个问题就解决了

但是又出现

checking for OpenSSL version >= 0.9.7... FAILED 
configure: WARNING: OpenSSL version is too old 
no 
checking whether to enable mod_ssl... configure: error: mod_ssl has been requested but can not be built due to prerequisite failures 


$wget http://openssl.org/source/openssl-1.0.1.tar.gz 
$tar xfz openssl-1.0.1.tar.gz 
$cd openssl-* 
$./config --prefix=/usr/local/openssl zlib-dynamic --openssldir=/etc/ssl shared 

错误有来了:

c_zlib.c:25:18: fatal error: zlib.h: No such file or directory

sudo apt-get install zlib1g-dev
make 
sudo make install 

继续安装Apache/httpd,./configure 时加上参数 --with-ssl=/usr/local/openssl

注意:Apache在安装时不会检查参数是否正确,错误的参数会直接被丢弃,不会报告给用户。但可以使用echo $?命令检查是否有错误,当输出结果为0时表示没有错误。

#echo $?
0

#make
#make install

至此apache安装完成。

复制Apache启动文件
#cp /usr/local/httpd/bin/apachectl /sbin/

启动Apache
#apachectl start

问题有tm的来了:

Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName

解决方法:

$ sudo  vi  /opt/apache/conf/httpd.conf

add

ServerName localhost

再看 /opt/apache/logs/error_log,会报告[pid 3228:tid 3075336448] AH02282: No slotmem from mod_heartmonitor

 AH00020: Configuration Failed, exiting这种错误

解决方法:

/opt/apache/conf/httpd.conf

把这句话去注释:

LoadModule slotmem_shm_module modules/mod_slotmem_shm.so

启动apache服务器

打开浏览器输入http://127.0.0.1:80 ok!it works!


2.2      安装Python2.7:

一般linux系统会自带Python,一般是2.4版本的,我们需要重新安装,这里注意,不要使用yum安装,而要用源码编译的方法安装,不然下面在配置之后会出错。

Ubuntu中默认就自带了python的2.5版本,结果我还是装了一个python的2.6版本,在网上查了下才知道python的2.5版本是目前使用者最多的版本,一些python的库都是用的这个版本,无奈只好再换回python的2.5版本了,其实在linux系统中多个python版本是可以共存的,只不过在终端中运行的时候,输入 python2.5 或者 python2.6就能进入不同的版本了,而且在你的*.py文件中可以用 #!/usr/bin/python  来指定程序的解释器版本,不过这样使用起来有些不方便,所以就把/usr/bin/python这个快捷方式的指向修改下好了。

: ~$ sudo rm /usr/bin/python

:~$ sudo ln -s /usr/include/python2.5 /usr/bin/python

这样在终端中输入python默认就是 2.5版本了。


 

 

tar -xvf Python-2.7.tar.bz2
  cd Python-2.7
  ./configure  --enable-shared       这里一定要注意,解压完之后要设置enable-shared

 

make

 

make install


  File "/usr/local/lib/python2.7/sre_constants.py", line 18, in <module>
    from _sre import MAXREPEAT
ImportError: cannot import name MAXREPEAT

或者

python: error while loading shared  libraries: libpython2.7.so.1.0: 
  cannot open shared object file: No such file or

   

解决方案: 

新建下面文件
  vim /etc/ld.so.conf.d/python2.7.conf
  加入内容:
  /usr/local/lib
  保存退出后运行:
  ldconfig

  

再次执行 python,问题成功解决。

django

# python
>>>import django
>>>django.VERSION

查看是否安装,如果没有安装

tar xzvf  Django-1.5.1.tar.gz 

cd  Django-1.5.1

sudo python  setup.py install




首先说一下mod_wsgi,mod_wsgi是mod_python的后继者

大体流程就是在Apache上添加该mod_wsgi模块,然后通过Apache的配置文件和Python的wsgi脚本来完成Python代码的部署和运行。mod_wsgi不仅仅支持Django框架,还支持其他很多的Python的Web框架。

./configure --with-apxs=/opt/apache/bin/apxs

提示找不到Python.h文件:

sudo apt-get install python-dev

:/usr/include/python2.7/Python.h

make 

sudo make install


安装完成后,会在/opt/apache/modules添加mod_wsgi.so库文件


更新源:

$ sudo apt-get update

寻找符合条件的软件名称

$apt-cache search mysql

$ sudo apt-get mysql-server mysql-client

安装的过程中会提示设置mysql的root密码

$ sudo mysqld 


$mysql -u root -p 以root用户登录,要求验证密码 ,启动mysql客户端

mysql -u root -p

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');


mysql>create database 数据库名;
mysql>grant create,select,insert,update,delete,index on 数据库名.* to 用户名@localhost identified by “密码”;


mysql> show databases; //当前数据库

mysql> CREATE DATABASE btcTrade;//创建一个btcTrade数据库

默认的数据库数据文件保存在/var/lib/mysql文件夹中的。(root)

默认的数据库的配置文件在/etc/mysql/my.cnf中。其中包括数据文件的的保存路径datadir= /var/lib/mysql

默认的数据库的日志文件/var/log/mysql/error.log



SSL

sudo cp /etc/ssl/misc/CA.sh //opt/apache/conf


zlm@ubuntu:/opt/apache/conf$ sudo ./ssl.crt -newca
CA certificate filename (or enter to create)//直接回车创建


Making CA certificate ...
Generating a 1024 bit RSA private key
.............................++++++
.........................++++++
writing new private key to './demoCA/private/./cakey.pem'
Enter PEM pass phrase:



AH00526: Syntax error on line 51 of /opt/apache/conf/extra/httpd-ssl.conf:
Invalid command 'SSLCipherSuite', perhaps misspelled or defined by a module not included in the server configuration

# vi /opt/apache/conf/httpd.conf
LoadModule ssl_module modules/mod_ssl.so



为了使用mysql中的数据库,首先要下载mysql-python的模块

# apt-get install python-mysqldb




>>> import btcTrade.btcdb 
>>> import btcTrade.btcdb.models
>>> from btcTrade.btcdb.models import user_info

<think>好的,我现在要分析用户提供的C语言代码逻辑是否正确。代码片段是: static int oplus_project_silky_brightness(void) { if (is_project(22610)||is_project(22705)... } } 用户想检查这段代码是否存在逻辑问题。首先,我需要仔细阅读代码,理解其功能,然后找出潜在的问题。 首先,函数的返回类型是int,但函数体中的if语句没有后续的返回或处理。如果条件满足,函数应该返回什么值?如果不满足呢?这会导致未定义的行为,因为函数可能没有返回值,这在C语言中是未定义的,可能导致编译错误或运行时错误。例如,当调用这个函数时,如果没有返回语句,返回的值会是不可预测的。 其次,is_project函数的参数看起来像是项目编号,但代码中的条件判断部分使用了逻辑或运算符||,但条件表达式不完整。用户提供的代码结尾有“...”,可能表示还有更多的条件,但实际代码中是否存在?如果条件写了一半,比如缺少括号或参数,会导致语法错误。例如,is_project(22705)后面是否有闭合的括号?如果用户代码中确实存在省略号,可能表示代码不完整,导致编译错误。 另外,函数命名和功能是否一致?函数名为silky_brightness,可能涉及屏幕亮度调整,但条件判断项目编号是否正确?如果项目编号错误,可能导致逻辑错误,例如错误地启用或禁用某些功能。 还需要考虑代码的上下文。例如,is_project函数的实现是否正确?如果该函数检查当前项目是否匹配参数,那么多个条件是否正确覆盖了所有需要的情况?如果项目编号有误,或者条件逻辑有误(比如应该使用&&而不是||),也会导致问题。 此外,代码风格方面,if语句没有大括号包裹,如果后续添加代码可能导致错误。虽然这不是逻辑错误,但影响代码的可维护性。 可能的解决方案包括:确保所有条件完整,补充缺失的括号;添加返回语句,根据条件返回适当的值;检查项目编号是否正确;验证is_project函数的行为是否符合预期。 总结问题:函数缺少返回语句,条件表达式可能不完整,项目编号是否正确,以及代码风格问题。</think>### 代码逻辑分析 #### 1. 函数返回值问题 函数声明为 `static int`,但代码中没有明确的 `return` 语句。在C语言中,若函数未显式返回值,调用时可能返回未定义结果(取决于编译器行为)。例如: ```c static int oplus_project_silky_brightness(void) { if (is_project(22610) || is_project(22705)) { // 假设条件完整 return 1; // 条件成立时返回值 } return 0; // 条件不成立时默认返回值 } ``` #### 2. 条件表达式不完整 原始代码中的 `...` 可能表示实际代码存在省略或语法错误。例如: - 若参数缺失:`is_project(22705`(缺少闭合括号)会直接导致编译错误。 - 若逻辑运算符错误:`||` 误写为 `&&` 可能引发逻辑判断偏差。 #### 3. 项目编号的合理性 假设 `is_project()` 用于检测硬件项目ID: - 若 `22610` 或 `22705` 是无效的ID,条件判断会失效。 - 需验证这些ID是否与硬件设计文档一致[^4]。 #### 4. 代码风格问题 未使用大括号包裹多行代码,可能导致维护问题: ```c if (condition) do_something(); // 后续添加代码时易出错 ``` ### 正确性修正建议 1. **补充返回语句**:明确所有分支的返回值。 2. **检查条件完整性**:确保所有括号闭合且参数正确。 3. **验证项目ID**:与硬件文档或代码上下文对比。 4. **添加代码块括号**:增强可读性和维护性。 ### 示例修正代码 ```c static int oplus_project_silky_brightness(void) { if (is_project(22610) || is_project(22705)) { // 完整条件 return 1; // 条件成立 } return 0; // 默认返回值 } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值