Điểm:0

máy chủ không hiển thị trang web sau khi cấu hình máy chủ mysql không thành công

lá cờ in

Tôi bắt đầu gặp lỗi này khi tôi cài đặt mysql_server trên máy chủ của mình với quyền root, tôi đang sử dụng ufw, tôi không biết liệu tôi có nên cho phép máy chủ mysql thông qua ufw của mình hay không, tôi cũng không biết làm thế nào. trên máy chủ cục bộ của tôi, tôi gặp lỗi này:

nội bộ/mô-đun/cjs/loader.js:638
    ném err;
    ^

Lỗi: Không thể tìm thấy mô-đun 'mysql'
    tại Function.Module._resolveFilename (nội bộ/mô-đun/cjs/loader.js:636:15)
    tại Function.Module._load (nội bộ/mô-đun/cjs/loader.js:562:25)
    tại Module.require (nội bộ/mô-đun/cjs/loader.js:692:17)
    theo yêu cầu (nội bộ/mô-đun/cjs/helpers.js:25:18)
    tại Object.<anonymous> (/mnt/c/Users/user/Documents/webdevelopment/projects/FinalYearProject/Black-Anthem-Ltd-Website/app.js:4:13)
    tại Module._compile (nội bộ/mô-đun/cjs/loader.js:778:30)
    tại Object.Module._extensions..js (nội bộ/mô-đun/cjs/loader.js:789:10)
    tại Module.load (nội bộ/mô-đun/cjs/loader.js:653:32)
    tại tryModuleLoad (nội bộ/mô-đun/cjs/loader.js:593:12)
    tại Function.Module._load (nội bộ/mô-đun/cjs/loader.js:585:3)

đặc biệt nó nói rằng nó không thể tìm thấy mysql trong các thư mục của tôi. Tôi đã cố gắng kết nối biểu mẫu html của mình với cơ sở dữ liệu mysql trước khi cài đặt mysql_server và bắt đầu gặp sự cố này. Đây là mã mẫu html của tôi: Mẫu người đăng ký trang chủ:

<div class="subsect">
        <div id="subtxt">
            <h1>Subscribe to our Newsletter!</h1>
        </div>
        <div id="subform">
            <form action="/" method="post">
                <div class="ol"><div class="nam" >Name</div><div id="rsik">*</div></div>
                <div class="sd ssd"><input type="text" name="fname" placeholder="First" id="fn">
                <input type="text" name="lname" placeholder="Last" id="ln" ></div>
                <div class="ol"><div class="nam" >E-mail</div><div id="rsik">*</div></div>
                <div class="sd"></span><input type="email" name="email" placeholder="[email protected]" id="email"></div></br>
                <button type="submit">Subscribe</button>
            </form>
        </div>
    </div>

Yêu cầu mẫu trang báo giá:

<div id="formsection">
                <form action="/RAQ" method="post" id="raqform">
                    <h2>Request A Quote</h2>
                    <div class="ol"><div class="nam" >Name</div><div id="rsik">*</div></div>
                    <div class="sd ssd"><input type="text" name="sfname" placeholder="First" id="fn">
                    <input type="text" name="slname" placeholder="Last" id="ln" ></div>
                    <div class="ol"><div class="nam" >E-mail</div><div id="rsik">*</div></div>
                    <div class="sd"><input type="email" name="semail" placeholder="[email protected]" id="email"></div>
                    <div class="ol"><div class="nam" >Select A Service</div><div id="rsik">*</div></div>
                    <div class="sd">
                        <select name="services" id="ser" class="sd">
                            <option value="RDCCC">Roads, Drainage, Culverts and channels construction</option>
                            <option value="CON">Consultancy</option>
                            <option value="DIC">Dams and irrigation Construction</option>
                            <option value="WMPFC">Warehousing, Marine and port facilities construction</option>
                            <option value="CHEIUPW">Construction of concrete hard surfaces especially in unfriendly polluted water</option>
                            <option value="CBHF">Consultation on buildings and feasibility</option>
                            <option value="CIMS">Calibration, inspection and meter proving services</option>
                            <option value="DCOGPPF">Design and Construction of oil and gas production and processing facilities</option>
                            <option value="DCPS">Design and Construction of pipeline Systems</option>
                            <option value="DCRPP">Design and Construction of refineries and petrochemical plants</option>
                            <option value="ROGF">Rehabilitation of oil and gas facilities (Onshore and Offshore)</option>
                            <option value="DCMTF">Design, Construction and Maintenance of tank farms</option>
                            <option value="DCMUS">Design, Construction and Maintenance of flow stations and underground storage</option>
                            <option value="LIP">Local and international procurement</option>
                            <option value="SSFP">Support services for projects</option>
                            <option value="CMSL">Civil and mechanical equipment supply and leasing</option>
                            <option value="HSEFPSMS">Health and safety environment and fire protection systems materials supply</option>
                            <option value="EFPSMS">Environment and fire protection systems materials supply</option>
                            <option value="SSS">Structural steel supply</option>
                            <option value="POCTG">Pipeline and oil country tubular goods (OCTG) supply </option>
                            <option value="WHCPS">Wellheads and control supply</option>
                            <option value="VFS">Valves and fittings supply</option>
                            <option value="PCFSS">Pumps, Compressor and fluid systems supply</option>
                            <option value="SSMPS">Strategic sourcing and man power supplies</option>
                            <option value="LSM">Logistics and supply chain management</option>
                            <option value="PM">Project Management</option>
                            <option value="FM">Facilities Management</option>
                        </select>
                        <div class="ol"><div class="nam" >Message</div><div id="rsik">*</div></div>
                        <div class="sd"><textarea name="comment" id="" cols="30" rows="10">Type your message here</textarea></div>
                    </div>
                    <button type="submit">Request A Quote</button>
                </form>
            </div>

Đây là tệp app.js của tôi:

const express = yêu cầu ('bày tỏ')
đường dẫn const = yêu cầu ('đường dẫn')
ứng dụng const = express()
var mysql = yêu cầu('mysql');
var bodyParser = require('body-parser')
cổng const = 3000

var urlencodedParser = bodyParser.urlencoded({ Extended: false })

//Tệp tĩnh
app.use(express.static(path.resolve(__dirname, 'public')))


// Đặt chế độ xem
app.set('công cụ xem', 'ejs')

app.set('lượt xem', './lượt xem')

app.get('/', (req, res) => {
  res.render('Trang chủ')
})

app.get('/Giới thiệu', (req, res) => {
  res.render('Giới thiệu')
})

app.get('/Projects', (req, res) => {
  res.render('Dự án')
})

app.get('/RAQ', (req, res) => {
  res.render('RAQ')
})

app.get('/', (req, res) => {
  res.render('home', {qs: req.query});
})

app.post('/', urlencodedParser, (req, res) => {
  res.render('home', {qs: req.query});
})

app.get('/raq', (req, res) => {
  res.render('raq', {qs: req.query});
})
app.post('/raq', urlencodedParser, (req, res) => {
  res.render('raq', {qs: req.query});
})
var kết nối = mysql.createConnection({
  máy chủ lưu trữ: 'https://www.blackanthemltd.site',
  người dùng: 'abayomi',
  mật khẩu mở khóa : '',
  cơ sở dữ liệu: 'thuê bao'
});
 
connection.connect(function(err){
  nếu (err) ném err;
  console.log('đã kết nối..')
});

app.post('/', function(req,res){
  console.log(req.body);

  var sql ="chèn vào giá trị người dùng('"+req.body.fname+"','"+req.body.lname+"',"+req.body.email+")"
  connection.query(sql, function (lỗi, kết quả) {
    nếu (lỗi) ném lỗi;
    console.log('Giải pháp là: ', results[0].solution);
  });

  res.render('Trang chủ', { title: 'Đã lưu dữ liệu',
  thông báo: 'Đã lưu dữ liệu thành công.'})

  kết nối.end();
})

var connection2 = mysql.createConnection({
  máy chủ lưu trữ: 'https://www.blackanthemltd.site',
  người dùng: 'abayomi',
  mật khẩu mở khóa : '',
  cơ sở dữ liệu: 'Quotation_requests'
});
 
connection2.connect(function(err){
  nếu (err) ném err;
  console.log('đã kết nối..')
});

app.post('/RAQ', function(req,res){
  console.log(req.body);

  var sql ="chèn vào giá trị người dùng('"+req.body.sfname+"', '"+req.body.slname+"', '"+req.body.semail+"', '"+req.body.services+ "', "+req.body.comment+")"
  connection2.query(sql, function (lỗi, kết quả) {
    nếu (lỗi) ném lỗi;
    console.log('Giải pháp là: ', results[0].solution);
  });

  res.render('RAQ', { title: 'Dữ liệu đã lưu',
  thông báo: 'Đã lưu dữ liệu thành công.'})

  kết nối2.end();
})

app.listen(cổng, () => {
      console.log(`Ứng dụng ví dụ đang nghe tại http://localhost:${port}`)
})


Đây là tệp pack.json của tôi trên máy chủ từ xa của tôi:

{
  "tên": "balfyp",
  "phiên bản": "1.0.0",
  "description": "Dự án năm cuối",
  "chính": "app.js",
  "kịch bản": {
    "kiểm tra": "echo \"Lỗi: không chỉ định kiểm tra\" && thoát 1",
    "bắt đầu": "gật đầu app.js"
  },
  "tác giả": "abayomi",
  "giấy phép": "MIT",
  "phụ thuộc": {
    "cors": "^2.8.5",
    "ejs": "^3.1.6",
    "thể hiện": "^4.17.1"
  },
  "devDependencies": {
    "gật đầu": "^2.0.12"
  }
}

đây là tệp pack.json của tôi trên máy chủ trực tiếp của tôi:

{
  "tên": "balfyp",
  "phiên bản": "1.0.0",
  "description": "Dự án năm cuối",
  "chính": "app.js",
  "kịch bản": {
    "kiểm tra": "echo \"Lỗi: không chỉ định kiểm tra\" && thoát 1",
    "bắt đầu": "gật đầu app.js"
  },
  "tác giả": "abayomi",
  "giấy phép": "MIT",
  "phụ thuộc": {
    "body-parser": "^1.19.0",
    "cors": "^2.8.5",
    "ejs": "^3.1.6",
    "thể hiện": "^4.17.1",
    "mysql": "^2.18.1",
    "gật đầu": "^6.6.3",
    "nodemailer-mailgun-transport": "^2.1.3"
  },
  "devDependencies": {
    "gật đầu": "^2.0.12"
  }
}

Xin vui lòng những gì tôi đã làm sai? Tôi đã thực hiện một số thay đổi đối với cơ sở mã của mình, trang web của tôi đã ngừng hiển thị lỗi và tải tốt, điều đó có nghĩa là mysql đã kết nối thành công, nhưng khi nhấp vào nút gửi trên biểu mẫu của tôi sau khi điền vào, tôi đã gặp lỗi:

Không ĐĂNG /

đây là những thay đổi tôi đã thực hiện đối với cơ sở mã, đặc biệt chỉ đối với tệp app.js của tôi:

const express = yêu cầu ('bày tỏ')
    đường dẫn const = yêu cầu ('đường dẫn')
    ứng dụng const = express()
    var mysql = yêu cầu('mysql');
    var bodyParser = require('body-parser')
    cổng const = 3000
    
    var urlencodedParser = bodyParser.urlencoded({ Extended: false })
    
    //Tệp tĩnh
    app.use(express.static(path.resolve(__dirname, 'public')))
    
    
    // Đặt chế độ xem
    app.set('công cụ xem', 'ejs')
    
    app.set('lượt xem', './lượt xem')
    
    app.get('/', (req, res) => {
      res.render('Trang chủ')
    })
    
    app.get('/Giới thiệu', (req, res) => {
      res.render('Giới thiệu')
    })
    
    app.get('/Projects', (req, res) => {
      res.render('Dự án')
    })
    
    app.get('/RAQ', (req, res) => {
      res.render('RAQ')
    })
    
    app.get('/', (req, res) => {
      res.render('home', {qs: req.query});
    })
    
    app.post('/', urlencodedParser, (req, res) => {
      res.render('home', {qs: req.query});
    })
    var kết nối = mysql.createConnection({
      máy chủ lưu trữ: 'https://www.blackanthemltd.site',
      người dùng: 'gốc',
      mật khẩu : 'Mynameisabayomi1.',
      cơ sở dữ liệu: 'bal'
    });
     
    connection.connect(function(err){
      nếu (err) ném err;
      console.log('đã kết nối..')
    });
    app.post('/', function(req,res){
      console.log(req.body);
    
      var sql ="chèn vào giá trị người dùng('"+req.body.fn+"','"+req.body.ln+"',"+req.body.email+")"
      connection.query(sql, function (lỗi, kết quả) {
        nếu (lỗi) ném lỗi;
        console.log('Giải pháp là: ', results[0].solution);
      });
    
      res.render('Trang chủ', { title: 'Đã lưu dữ liệu',
      thông báo: 'Đã lưu dữ liệu thành công.'})
    
      kết nối.end();
    })
    app.listen(cổng, () => {
          console.log(`Ứng dụng ví dụ đang nghe tại http://localhost:${port}`)
    })

xin vui lòng làm thế nào tôi có thể ngừng nhận được lỗi này.

lá cờ in
MySQL có trên cùng một máy chủ với máy chủ lưu trữ web không? Hay MySQL đang chạy trên một máy chủ riêng biệt?
Abayomi Usman avatar
lá cờ in
Nó nằm trên cùng một máy chủ với máy chủ lưu trữ web
Điểm:0
lá cờ in

Nếu MySQL đang chạy trên cùng một máy với máy chủ web, thì bạn không cần sửa đổi bất cứ điều gì với UFW.Thay vào đó, bạn sẽ muốn thay đổi cài đặt kết nối của mình:

var kết nối = mysql.createConnection({
    máy chủ: '127.0.0.1',
    người dùng: 'myWebApp',
    mật khẩu: 'superSecretPassword!123.',
    cơ sở dữ liệu: 'bal'
});

Ghi chú:

  1. Các chủ nhà giá trị nói chung là 127.0.0.1 hoặc máy chủ cục bộ khi cơ sở dữ liệu trên cùng hệ thống với máy chủ web.
  2. Bạn không thể (dễ dàng) sử dụng nguồn gốc Tài khoản MySQL cho các ứng dụng web nữa, vì vậy bạn sẽ muốn tạo một tài khoản mới có quyền truy cập vào cơ sở dữ liệu mà bạn đang sử dụng:
    1. Kết nối với MySQL trên máy chủ
      gốc sudo mysql -u
      
      Ghi chú: Đây là cách nguồn gốc Tài khoản MySQL được truy cập ngay bây giờ. Bạn cần phải có sudo đặc quyền trên máy chủ. Đây là một tính năng bảo mật và là một trong nhiều lý do tại sao các máy chủ web không thể sử dụng nguồn gốc tài khoản nữa.
    2. Tạo một tài khoản mới và chỉ cấp cho nó quyền truy cập đầy đủ vào cơ sở dữ liệu mà trang web cần:
      TẠO NGƯỜI DÙNG 'baluser'@'localhost' ĐƯỢC XÁC ĐỊNH VỚI mysql_native_password BẰNG 'superSecretPassword!123';
      CẤP TẤT CẢ TRÊN `bal`.* CHO 'baluser'@'localhost';
      

Điều này sẽ cung cấp cho bạn những gì bạn cần để bắt đầu.

Abayomi Usman avatar
lá cờ in
Ok, hãy để tôi thử cái này, tôi hy vọng nó sẽ hoạt động
Abayomi Usman avatar
lá cờ in
Ok, hãy để tôi thử cái này, tôi hy vọng nó sẽ hoạt động

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.